From 8a7e96f79f91662a22e0a88d70404ef5bbf066ee Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Fri, 24 Aug 2012 17:32:54 +0200 Subject: Manage thumbnails for picture files - display with prettyPhoto on detail desc --- .gitignore | 2 + ...e_thumbnailfile__add_field_picturefile_thumb.py | 242 +++++++++++++++++++++ chimere/models.py | 51 ++++- chimere/static/chimere/css/styles.css | 6 + chimere/static/prettyPhoto/css/prettyPhoto.css | 170 +++++++++++++++ .../images/prettyPhoto/dark_rounded/btnNext.png | Bin 0 -> 1411 bytes .../prettyPhoto/dark_rounded/btnPrevious.png | Bin 0 -> 1442 bytes .../prettyPhoto/dark_rounded/contentPattern.png | Bin 0 -> 130 bytes .../prettyPhoto/dark_rounded/default_thumbnail.gif | Bin 0 -> 227 bytes .../images/prettyPhoto/dark_rounded/loader.gif | Bin 0 -> 2545 bytes .../images/prettyPhoto/dark_rounded/sprite.png | Bin 0 -> 4076 bytes .../images/prettyPhoto/dark_square/btnNext.png | Bin 0 -> 1411 bytes .../images/prettyPhoto/dark_square/btnPrevious.png | Bin 0 -> 1442 bytes .../prettyPhoto/dark_square/contentPattern.png | Bin 0 -> 121 bytes .../prettyPhoto/dark_square/default_thumbnail.gif | Bin 0 -> 227 bytes .../images/prettyPhoto/dark_square/loader.gif | Bin 0 -> 2545 bytes .../images/prettyPhoto/dark_square/sprite.png | Bin 0 -> 3507 bytes .../images/prettyPhoto/default/default_thumb.png | Bin 0 -> 1537 bytes .../images/prettyPhoto/default/loader.gif | Bin 0 -> 6331 bytes .../images/prettyPhoto/default/sprite.png | Bin 0 -> 6682 bytes .../images/prettyPhoto/default/sprite_next.png | Bin 0 -> 1358 bytes .../images/prettyPhoto/default/sprite_prev.png | Bin 0 -> 1376 bytes .../images/prettyPhoto/default/sprite_x.png | Bin 0 -> 1097 bytes .../images/prettyPhoto/default/sprite_y.png | Bin 0 -> 1162 bytes .../images/prettyPhoto/facebook/btnNext.png | Bin 0 -> 845 bytes .../images/prettyPhoto/facebook/btnPrevious.png | Bin 0 -> 828 bytes .../prettyPhoto/facebook/contentPatternBottom.png | Bin 0 -> 142 bytes .../prettyPhoto/facebook/contentPatternLeft.png | Bin 0 -> 137 bytes .../prettyPhoto/facebook/contentPatternRight.png | Bin 0 -> 136 bytes .../prettyPhoto/facebook/contentPatternTop.png | Bin 0 -> 142 bytes .../prettyPhoto/facebook/default_thumbnail.gif | Bin 0 -> 227 bytes .../images/prettyPhoto/facebook/loader.gif | Bin 0 -> 2545 bytes .../images/prettyPhoto/facebook/sprite.png | Bin 0 -> 4227 bytes .../images/prettyPhoto/light_rounded/btnNext.png | Bin 0 -> 1411 bytes .../prettyPhoto/light_rounded/btnPrevious.png | Bin 0 -> 1442 bytes .../light_rounded/default_thumbnail.gif | Bin 0 -> 227 bytes .../images/prettyPhoto/light_rounded/loader.gif | Bin 0 -> 2545 bytes .../images/prettyPhoto/light_rounded/sprite.png | Bin 0 -> 4099 bytes .../images/prettyPhoto/light_square/btnNext.png | Bin 0 -> 1411 bytes .../prettyPhoto/light_square/btnPrevious.png | Bin 0 -> 1442 bytes .../prettyPhoto/light_square/default_thumbnail.gif | Bin 0 -> 227 bytes .../images/prettyPhoto/light_square/loader.gif | Bin 0 -> 2545 bytes .../images/prettyPhoto/light_square/sprite.png | Bin 0 -> 3507 bytes .../static/prettyPhoto/js/jquery.prettyPhoto.js | 83 +++++++ chimere/templates/chimere/blocks/head_jme.html | 4 + .../templates/chimere/blocks/multimedia_file.html | 2 +- chimere/templates/chimere/detail.html | 7 + chimere/templates/chimere/main_map.html | 2 +- example_project/settings.py | 5 + 49 files changed, 569 insertions(+), 5 deletions(-) create mode 100644 chimere/migrations/0028_auto__add_field_picturefile_thumbnailfile__add_field_picturefile_thumb.py create mode 100644 chimere/static/prettyPhoto/css/prettyPhoto.css create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/dark_rounded/btnNext.png create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/dark_rounded/btnPrevious.png create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/dark_rounded/contentPattern.png create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/dark_rounded/default_thumbnail.gif create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/dark_rounded/loader.gif create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/dark_rounded/sprite.png create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/dark_square/btnNext.png create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/dark_square/btnPrevious.png create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/dark_square/contentPattern.png create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/dark_square/default_thumbnail.gif create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/dark_square/loader.gif create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/dark_square/sprite.png create mode 100644 chimere/static/prettyPhoto/images/prettyPhoto/default/default_thumb.png create mode 100644 chimere/static/prettyPhoto/images/prettyPhoto/default/loader.gif create mode 100644 chimere/static/prettyPhoto/images/prettyPhoto/default/sprite.png create mode 100644 chimere/static/prettyPhoto/images/prettyPhoto/default/sprite_next.png create mode 100644 chimere/static/prettyPhoto/images/prettyPhoto/default/sprite_prev.png create mode 100644 chimere/static/prettyPhoto/images/prettyPhoto/default/sprite_x.png create mode 100644 chimere/static/prettyPhoto/images/prettyPhoto/default/sprite_y.png create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/facebook/btnNext.png create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/facebook/btnPrevious.png create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/facebook/contentPatternBottom.png create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/facebook/contentPatternLeft.png create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/facebook/contentPatternRight.png create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/facebook/contentPatternTop.png create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/facebook/default_thumbnail.gif create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/facebook/loader.gif create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/facebook/sprite.png create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/light_rounded/btnNext.png create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/light_rounded/btnPrevious.png create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/light_rounded/default_thumbnail.gif create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/light_rounded/loader.gif create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/light_rounded/sprite.png create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/light_square/btnNext.png create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/light_square/btnPrevious.png create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/light_square/default_thumbnail.gif create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/light_square/loader.gif create mode 100755 chimere/static/prettyPhoto/images/prettyPhoto/light_square/sprite.png create mode 100644 chimere/static/prettyPhoto/js/jquery.prettyPhoto.js diff --git a/.gitignore b/.gitignore index cd51ca8..4cfffce 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,6 @@ example_project/settings.py example_project/static/icons/* example_project/static/upload/* +example_project/media/* +example_project/local_settings.py chimere_env/ diff --git a/chimere/migrations/0028_auto__add_field_picturefile_thumbnailfile__add_field_picturefile_thumb.py b/chimere/migrations/0028_auto__add_field_picturefile_thumbnailfile__add_field_picturefile_thumb.py new file mode 100644 index 0000000..430cc2e --- /dev/null +++ b/chimere/migrations/0028_auto__add_field_picturefile_thumbnailfile__add_field_picturefile_thumb.py @@ -0,0 +1,242 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'PictureFile.thumbnailfile' + db.add_column('chimere_picturefile', 'thumbnailfile', + self.gf('django.db.models.fields.files.ImageField')(max_length=100, null=True, blank=True), + keep_default=False) + + # Adding field 'PictureFile.thumbnailfile_height' + db.add_column('chimere_picturefile', 'thumbnailfile_height', + self.gf('django.db.models.fields.IntegerField')(null=True, blank=True), + keep_default=False) + + # Adding field 'PictureFile.thumbnailfile_width' + db.add_column('chimere_picturefile', 'thumbnailfile_width', + self.gf('django.db.models.fields.IntegerField')(null=True, blank=True), + keep_default=False) + + from chimere. models import picturefile_post_save + for picture in orm.PictureFile.objects.all(): + picturefile_post_save(orm.PictureFile, instance=picture, + created=False) + + + def backwards(self, orm): + # Deleting field 'PictureFile.thumbnailfile' + db.delete_column('chimere_picturefile', 'thumbnailfile') + + # Deleting field 'PictureFile.thumbnailfile_height' + db.delete_column('chimere_picturefile', 'thumbnailfile_height') + + # Deleting field 'PictureFile.thumbnailfile_width' + db.delete_column('chimere_picturefile', 'thumbnailfile_width') + + + models = { + 'chimere.area': { + 'Meta': {'ordering': "('order', 'name')", 'object_name': 'Area'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'default': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'default_subcategories': ('chimere.widgets.SelectMultipleField', [], {'to': "orm['chimere.SubCategory']", 'symmetrical': 'False', 'blank': 'True'}), + 'dynamic_categories': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'external_css': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'layers': ('chimere.widgets.SelectMultipleField', [], {'symmetrical': 'False', 'related_name': "'areas'", 'blank': 'True', 'through': "orm['chimere.AreaLayers']", 'to': "orm['chimere.Layer']"}), + 'lower_right_corner': ('django.contrib.gis.db.models.fields.PointField', [], {'default': "'POINT(0 0)'"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'restrict_to_extent': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'subcategories': ('chimere.widgets.SelectMultipleField', [], {'symmetrical': 'False', 'related_name': "'areas'", 'blank': 'True', 'db_table': "'chimere_subcategory_areas'", 'to': "orm['chimere.SubCategory']"}), + 'upper_left_corner': ('django.contrib.gis.db.models.fields.PointField', [], {'default': "'POINT(0 0)'"}), + 'urn': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50', 'blank': 'True'}), + 'welcome_message': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}) + }, + 'chimere.arealayers': { + 'Meta': {'ordering': "('order',)", 'object_name': 'AreaLayers'}, + 'area': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['chimere.Area']"}), + 'default': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'layer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['chimere.Layer']"}), + 'order': ('django.db.models.fields.IntegerField', [], {}) + }, + 'chimere.category': { + 'Meta': {'ordering': "['order']", 'object_name': 'Category'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}), + 'order': ('django.db.models.fields.IntegerField', [], {}) + }, + 'chimere.color': { + 'Meta': {'ordering': "['order']", 'object_name': 'Color'}, + 'code': ('django.db.models.fields.CharField', [], {'max_length': '6'}), + 'color_theme': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['chimere.ColorTheme']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'order': ('django.db.models.fields.IntegerField', [], {}) + }, + 'chimere.colortheme': { + 'Meta': {'object_name': 'ColorTheme'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}) + }, + 'chimere.icon': { + 'Meta': {'object_name': 'Icon'}, + 'height': ('django.db.models.fields.IntegerField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}), + 'width': ('django.db.models.fields.IntegerField', [], {}) + }, + 'chimere.importer': { + 'Meta': {'object_name': 'Importer'}, + 'categories': ('chimere.widgets.SelectMultipleField', [], {'to': "orm['chimere.SubCategory']", 'symmetrical': 'False'}), + 'filtr': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'importer_type': ('django.db.models.fields.CharField', [], {'max_length': '4'}), + 'source': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'srid': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'state': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'zipped': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'chimere.layer': { + 'Meta': {'object_name': 'Layer'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'layer_code': ('django.db.models.fields.TextField', [], {'max_length': '300'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}) + }, + 'chimere.marker': { + 'Meta': {'ordering': "('status', 'name')", 'object_name': 'Marker'}, + 'available_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'categories': ('chimere.widgets.SelectMultipleField', [], {'to': "orm['chimere.SubCategory']", 'symmetrical': 'False'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'import_key': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'import_source': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'import_version': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}), + 'point': ('chimere.widgets.PointField', [], {}), + 'ref_item': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'submited_marker'", 'null': 'True', 'to': "orm['chimere.Marker']"}), + 'route': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'associated_marker'", 'null': 'True', 'to': "orm['chimere.Route']"}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'status': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'submiter_comment': ('django.db.models.fields.TextField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'submiter_email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), + 'submiter_name': ('django.db.models.fields.CharField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}), + 'submiter_session_key': ('django.db.models.fields.CharField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}) + }, + 'chimere.multimediafile': { + 'Meta': {'object_name': 'MultimediaFile'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'marker': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'multimedia_files'", 'to': "orm['chimere.Marker']"}), + 'miniature': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'multimedia_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['chimere.MultimediaType']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}) + }, + 'chimere.multimediatype': { + 'Meta': {'object_name': 'MultimediaType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'iframe': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'media_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}) + }, + 'chimere.news': { + 'Meta': {'object_name': 'News'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'content': ('django.db.models.fields.TextField', [], {}), + 'date': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '150'}) + }, + 'chimere.picturefile': { + 'Meta': {'object_name': 'PictureFile'}, + 'height': ('django.db.models.fields.IntegerField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'marker': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'pictures'", 'to': "orm['chimere.Marker']"}), + 'miniature': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'picture': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}), + 'thumbnailfile': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'thumbnailfile_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnailfile_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.IntegerField', [], {}) + }, + 'chimere.property': { + 'Meta': {'object_name': 'Property'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'marker': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['chimere.Marker']"}), + 'propertymodel': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['chimere.PropertyModel']"}), + 'value': ('django.db.models.fields.TextField', [], {}) + }, + 'chimere.propertymodel': { + 'Meta': {'ordering': "('order',)", 'object_name': 'PropertyModel'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'mandatory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'subcategories': ('chimere.widgets.SelectMultipleField', [], {'symmetrical': 'False', 'related_name': "'properties'", 'blank': 'True', 'to': "orm['chimere.SubCategory']"}), + 'type': ('django.db.models.fields.CharField', [], {'max_length': '1'}) + }, + 'chimere.route': { + 'Meta': {'ordering': "('status', 'name')", 'object_name': 'Route'}, + 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['chimere.RouteFile']", 'null': 'True', 'blank': 'True'}), + 'categories': ('chimere.widgets.SelectMultipleField', [], {'to': "orm['chimere.SubCategory']", 'symmetrical': 'False'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'import_key': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'import_source': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'import_version': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}), + 'picture': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'ref_item': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'submited_route'", 'null': 'True', 'to': "orm['chimere.Route']"}), + 'route': ('chimere.widgets.RouteField', [], {}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'status': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'submiter_comment': ('django.db.models.fields.TextField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'submiter_email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), + 'submiter_name': ('django.db.models.fields.CharField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}), + 'submiter_session_key': ('django.db.models.fields.CharField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}), + 'width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'chimere.routefile': { + 'Meta': {'ordering': "('name',)", 'object_name': 'RouteFile'}, + 'file_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}), + 'raw_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'simplified_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}) + }, + 'chimere.subcategory': { + 'Meta': {'ordering': "['category', 'order']", 'object_name': 'SubCategory'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'category': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['chimere.Category']"}), + 'color_theme': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['chimere.ColorTheme']", 'null': 'True', 'blank': 'True'}), + 'icon': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['chimere.Icon']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'item_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}), + 'order': ('django.db.models.fields.IntegerField', [], {}) + }, + 'chimere.tinyurl': { + 'Meta': {'object_name': 'TinyUrl'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'parameters': ('django.db.models.fields.CharField', [], {'max_length': '500'}) + } + } + + complete_apps = ['chimere'] diff --git a/chimere/models.py b/chimere/models.py index 936353d..e4469b4 100644 --- a/chimere/models.py +++ b/chimere/models.py @@ -20,10 +20,10 @@ """ Models description """ -import os, string, re +import os, datetime, re, string import simplejson as json from lxml import etree -import datetime +from PIL import Image from subprocess import Popen, PIPE from django.conf import settings @@ -540,6 +540,14 @@ class PictureFile(models.Model): width = models.IntegerField(_(u"Width")) miniature = models.BooleanField(_(u"Display inside the description?"), default=settings.CHIMERE_MINIATURE_BY_DEFAULT) + thumbnailfile = models.ImageField(_(u"Thumbnail"), upload_to='pictures', + blank=True, null=True, + height_field='thumbnailfile_height', + width_field='thumbnailfile_width') + thumbnailfile_height = models.IntegerField(_(u"Thumbnail height"), + blank=True, null=True) + thumbnailfile_width = models.IntegerField(_(u"Thumbnail width"), + blank=True, null=True) order = models.IntegerField(_(u"Order"), default=1) marker = models.ForeignKey(Marker, related_name='pictures') @@ -550,10 +558,47 @@ class PictureFile(models.Model): verbose_name = _(u"Picture file") verbose_name_plural = _(u"Picture files") +def scale_image(max_x, pair): + x, y = pair + new_y = (float(max_x) / x) * y + return (int(max_x), int(new_y)) + def picturefile_post_save(sender, **kwargs): - if not kwargs['instance'] or not kwargs['created']: + if not kwargs['instance']: return picturefile = kwargs['instance'] + + if not picturefile.thumbnailfile: + file = picturefile.picture + # defining the filename and the thumbnail filename + filehead, filetail = os.path.split(os.path.abspath(file.path)) + basename, format = os.path.splitext(filetail) + miniature = basename + '_thumb' + format + filename = file.path + miniature_filename = os.path.join(filehead, miniature) + + image = Image.open(filename) + image_x, image_y = image.size + if settings.CHIMERE_THUMBS_SCALE_HEIGHT: + image_y, image_x = scale_image(settings.CHIMERE_THUMBS_SCALE_HEIGHT, + (image_y, image_x)) + elif settings.CHIMERE_THUMBS_SCALE_WIDTH: + image_x, image_y = scale_image(settings.CHIMERE_THUMBS_SCALE_WIDTH, + (image_x, image_y)) + image.thumbnail([image_x, image_y], Image.ANTIALIAS) + + temp_image = open(miniature_filename, 'w') + try: + image.save(temp_image, image.format, quality=90, optimize=1) + except: + image.save(temp_image, image.format, quality=90) + + short_name = miniature_filename[len(settings.MEDIA_ROOT):] + picturefile.thumbnailfile = short_name + picturefile.save() + + if not kwargs['instance'] or not kwargs['created']: + return pfs = PictureFile.objects.filter(marker=picturefile.marker).exclude( pk=picturefile.pk).order_by('order') for idx, pf in enumerate(pfs.all()): diff --git a/chimere/static/chimere/css/styles.css b/chimere/static/chimere/css/styles.css index c2ddab8..2fc42df 100644 --- a/chimere/static/chimere/css/styles.css +++ b/chimere/static/chimere/css/styles.css @@ -723,6 +723,12 @@ html > body .media-state { pointer-events: auto; } +/* prettyPhoto */ +div.pp_default .pp_expand{ + height:0; + width:0; +} + /* SimplePanZoom */ diff --git a/chimere/static/prettyPhoto/css/prettyPhoto.css b/chimere/static/prettyPhoto/css/prettyPhoto.css new file mode 100644 index 0000000..8a2a2fd --- /dev/null +++ b/chimere/static/prettyPhoto/css/prettyPhoto.css @@ -0,0 +1,170 @@ +div.pp_default .pp_top,div.pp_default .pp_top .pp_middle,div.pp_default .pp_top .pp_left,div.pp_default .pp_top .pp_right,div.pp_default .pp_bottom,div.pp_default .pp_bottom .pp_left,div.pp_default .pp_bottom .pp_middle,div.pp_default .pp_bottom .pp_right{height:13px} +div.pp_default .pp_top .pp_left{background:url(../images/prettyPhoto/default/sprite.png) -78px -93px no-repeat} +div.pp_default .pp_top .pp_middle{background:url(../images/prettyPhoto/default/sprite_x.png) top left repeat-x} +div.pp_default .pp_top .pp_right{background:url(../images/prettyPhoto/default/sprite.png) -112px -93px no-repeat} +div.pp_default .pp_content .ppt{color:#f8f8f8} +div.pp_default .pp_content_container .pp_left{background:url(../images/prettyPhoto/default/sprite_y.png) -7px 0 repeat-y;padding-left:13px} +div.pp_default .pp_content_container .pp_right{background:url(../images/prettyPhoto/default/sprite_y.png) top right repeat-y;padding-right:13px} +div.pp_default .pp_next:hover{background:url(../images/prettyPhoto/default/sprite_next.png) center right no-repeat;cursor:pointer} +div.pp_default .pp_previous:hover{background:url(../images/prettyPhoto/default/sprite_prev.png) center left no-repeat;cursor:pointer} +div.pp_default .pp_expand{background:url(../images/prettyPhoto/default/sprite.png) 0 -29px no-repeat;cursor:pointer;width:28px;height:28px} +div.pp_default .pp_expand:hover{background:url(../images/prettyPhoto/default/sprite.png) 0 -56px no-repeat;cursor:pointer} +div.pp_default .pp_contract{background:url(../images/prettyPhoto/default/sprite.png) 0 -84px no-repeat;cursor:pointer;width:28px;height:28px} +div.pp_default .pp_contract:hover{background:url(../images/prettyPhoto/default/sprite.png) 0 -113px no-repeat;cursor:pointer} +div.pp_default .pp_close{width:30px;height:30px;background:url(../images/prettyPhoto/default/sprite.png) 2px 1px no-repeat;cursor:pointer} +div.pp_default .pp_gallery ul li a{background:url(../images/prettyPhoto/default/default_thumb.png) center center #f8f8f8;border:1px solid #aaa} +div.pp_default .pp_social{margin-top:7px} +div.pp_default .pp_gallery a.pp_arrow_previous,div.pp_default .pp_gallery a.pp_arrow_next{position:static;left:auto} +div.pp_default .pp_nav .pp_play,div.pp_default .pp_nav .pp_pause{background:url(../images/prettyPhoto/default/sprite.png) -51px 1px no-repeat;height:30px;width:30px} +div.pp_default .pp_nav .pp_pause{background-position:-51px -29px} +div.pp_default a.pp_arrow_previous,div.pp_default a.pp_arrow_next{background:url(../images/prettyPhoto/default/sprite.png) -31px -3px no-repeat;height:20px;width:20px;margin:4px 0 0} +div.pp_default a.pp_arrow_next{left:52px;background-position:-82px -3px} +div.pp_default .pp_content_container .pp_details{margin-top:5px} +div.pp_default .pp_nav{clear:none;height:30px;width:110px;position:relative} +div.pp_default .pp_nav .currentTextHolder{font-family:Georgia;font-style:italic;color:#999;font-size:11px;left:75px;line-height:25px;position:absolute;top:2px;margin:0;padding:0 0 0 10px} +div.pp_default .pp_close:hover,div.pp_default .pp_nav .pp_play:hover,div.pp_default .pp_nav .pp_pause:hover,div.pp_default .pp_arrow_next:hover,div.pp_default .pp_arrow_previous:hover{opacity:0.7} +div.pp_default .pp_description{font-size:11px;font-weight:700;line-height:14px;margin:5px 50px 5px 0} +div.pp_default .pp_bottom .pp_left{background:url(../images/prettyPhoto/default/sprite.png) -78px -127px no-repeat} +div.pp_default .pp_bottom .pp_middle{background:url(../images/prettyPhoto/default/sprite_x.png) bottom left repeat-x} +div.pp_default .pp_bottom .pp_right{background:url(../images/prettyPhoto/default/sprite.png) -112px -127px no-repeat} +div.pp_default .pp_loaderIcon{background:url(../images/prettyPhoto/default/loader.gif) center center no-repeat} +div.light_rounded .pp_top .pp_left{background:url(../images/prettyPhoto/light_rounded/sprite.png) -88px -53px no-repeat} +div.light_rounded .pp_top .pp_right{background:url(../images/prettyPhoto/light_rounded/sprite.png) -110px -53px no-repeat} +div.light_rounded .pp_next:hover{background:url(../images/prettyPhoto/light_rounded/btnNext.png) center right no-repeat;cursor:pointer} +div.light_rounded .pp_previous:hover{background:url(../images/prettyPhoto/light_rounded/btnPrevious.png) center left no-repeat;cursor:pointer} +div.light_rounded .pp_expand{background:url(../images/prettyPhoto/light_rounded/sprite.png) -31px -26px no-repeat;cursor:pointer} +div.light_rounded .pp_expand:hover{background:url(../images/prettyPhoto/light_rounded/sprite.png) -31px -47px no-repeat;cursor:pointer} +div.light_rounded .pp_contract{background:url(../images/prettyPhoto/light_rounded/sprite.png) 0 -26px no-repeat;cursor:pointer} +div.light_rounded .pp_contract:hover{background:url(../images/prettyPhoto/light_rounded/sprite.png) 0 -47px no-repeat;cursor:pointer} +div.light_rounded .pp_close{width:75px;height:22px;background:url(../images/prettyPhoto/light_rounded/sprite.png) -1px -1px no-repeat;cursor:pointer} +div.light_rounded .pp_nav .pp_play{background:url(../images/prettyPhoto/light_rounded/sprite.png) -1px -100px no-repeat;height:15px;width:14px} +div.light_rounded .pp_nav .pp_pause{background:url(../images/prettyPhoto/light_rounded/sprite.png) -24px -100px no-repeat;height:15px;width:14px} +div.light_rounded .pp_arrow_previous{background:url(../images/prettyPhoto/light_rounded/sprite.png) 0 -71px no-repeat} +div.light_rounded .pp_arrow_next{background:url(../images/prettyPhoto/light_rounded/sprite.png) -22px -71px no-repeat} +div.light_rounded .pp_bottom .pp_left{background:url(../images/prettyPhoto/light_rounded/sprite.png) -88px -80px no-repeat} +div.light_rounded .pp_bottom .pp_right{background:url(../images/prettyPhoto/light_rounded/sprite.png) -110px -80px no-repeat} +div.dark_rounded .pp_top .pp_left{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -88px -53px no-repeat} +div.dark_rounded .pp_top .pp_right{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -110px -53px no-repeat} +div.dark_rounded .pp_content_container .pp_left{background:url(../images/prettyPhoto/dark_rounded/contentPattern.png) top left repeat-y} +div.dark_rounded .pp_content_container .pp_right{background:url(../images/prettyPhoto/dark_rounded/contentPattern.png) top right repeat-y} +div.dark_rounded .pp_next:hover{background:url(../images/prettyPhoto/dark_rounded/btnNext.png) center right no-repeat;cursor:pointer} +div.dark_rounded .pp_previous:hover{background:url(../images/prettyPhoto/dark_rounded/btnPrevious.png) center left no-repeat;cursor:pointer} +div.dark_rounded .pp_expand{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -31px -26px no-repeat;cursor:pointer} +div.dark_rounded .pp_expand:hover{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -31px -47px no-repeat;cursor:pointer} +div.dark_rounded .pp_contract{background:url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -26px no-repeat;cursor:pointer} +div.dark_rounded .pp_contract:hover{background:url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -47px no-repeat;cursor:pointer} +div.dark_rounded .pp_close{width:75px;height:22px;background:url(../images/prettyPhoto/dark_rounded/sprite.png) -1px -1px no-repeat;cursor:pointer} +div.dark_rounded .pp_description{margin-right:85px;color:#fff} +div.dark_rounded .pp_nav .pp_play{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -1px -100px no-repeat;height:15px;width:14px} +div.dark_rounded .pp_nav .pp_pause{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -24px -100px no-repeat;height:15px;width:14px} +div.dark_rounded .pp_arrow_previous{background:url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -71px no-repeat} +div.dark_rounded .pp_arrow_next{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -22px -71px no-repeat} +div.dark_rounded .pp_bottom .pp_left{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -88px -80px no-repeat} +div.dark_rounded .pp_bottom .pp_right{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -110px -80px no-repeat} +div.dark_rounded .pp_loaderIcon{background:url(../images/prettyPhoto/dark_rounded/loader.gif) center center no-repeat} +div.dark_square .pp_left,div.dark_square .pp_middle,div.dark_square .pp_right,div.dark_square .pp_content{background:#000} +div.dark_square .pp_description{color:#fff;margin:0 85px 0 0} +div.dark_square .pp_loaderIcon{background:url(../images/prettyPhoto/dark_square/loader.gif) center center no-repeat} +div.dark_square .pp_expand{background:url(../images/prettyPhoto/dark_square/sprite.png) -31px -26px no-repeat;cursor:pointer} +div.dark_square .pp_expand:hover{background:url(../images/prettyPhoto/dark_square/sprite.png) -31px -47px no-repeat;cursor:pointer} +div.dark_square .pp_contract{background:url(../images/prettyPhoto/dark_square/sprite.png) 0 -26px no-repeat;cursor:pointer} +div.dark_square .pp_contract:hover{background:url(../images/prettyPhoto/dark_square/sprite.png) 0 -47px no-repeat;cursor:pointer} +div.dark_square .pp_close{width:75px;height:22px;background:url(../images/prettyPhoto/dark_square/sprite.png) -1px -1px no-repeat;cursor:pointer} +div.dark_square .pp_nav{clear:none} +div.dark_square .pp_nav .pp_play{background:url(../images/prettyPhoto/dark_square/sprite.png) -1px -100px no-repeat;height:15px;width:14px} +div.dark_square .pp_nav .pp_pause{background:url(../images/prettyPhoto/dark_square/sprite.png) -24px -100px no-repeat;height:15px;width:14px} +div.dark_square .pp_arrow_previous{background:url(../images/prettyPhoto/dark_square/sprite.png) 0 -71px no-repeat} +div.dark_square .pp_arrow_next{background:url(../images/prettyPhoto/dark_square/sprite.png) -22px -71px no-repeat} +div.dark_square .pp_next:hover{background:url(../images/prettyPhoto/dark_square/btnNext.png) center right no-repeat;cursor:pointer} +div.dark_square .pp_previous:hover{background:url(../images/prettyPhoto/dark_square/btnPrevious.png) center left no-repeat;cursor:pointer} +div.light_square .pp_expand{background:url(../images/prettyPhoto/light_square/sprite.png) -31px -26px no-repeat;cursor:pointer} +div.light_square .pp_expand:hover{background:url(../images/prettyPhoto/light_square/sprite.png) -31px -47px no-repeat;cursor:pointer} +div.light_square .pp_contract{background:url(../images/prettyPhoto/light_square/sprite.png) 0 -26px no-repeat;cursor:pointer} +div.light_square .pp_contract:hover{background:url(../images/prettyPhoto/light_square/sprite.png) 0 -47px no-repeat;cursor:pointer} +div.light_square .pp_close{width:75px;height:22px;background:url(../images/prettyPhoto/light_square/sprite.png) -1px -1px no-repeat;cursor:pointer} +div.light_square .pp_nav .pp_play{background:url(../images/prettyPhoto/light_square/sprite.png) -1px -100px no-repeat;height:15px;width:14px} +div.light_square .pp_nav .pp_pause{background:url(../images/prettyPhoto/light_square/sprite.png) -24px -100px no-repeat;height:15px;width:14px} +div.light_square .pp_arrow_previous{background:url(../images/prettyPhoto/light_square/sprite.png) 0 -71px no-repeat} +div.light_square .pp_arrow_next{background:url(../images/prettyPhoto/light_square/sprite.png) -22px -71px no-repeat} +div.light_square .pp_next:hover{background:url(../images/prettyPhoto/light_square/btnNext.png) center right no-repeat;cursor:pointer} +div.light_square .pp_previous:hover{background:url(../images/prettyPhoto/light_square/btnPrevious.png) center left no-repeat;cursor:pointer} +div.facebook .pp_top .pp_left{background:url(../images/prettyPhoto/facebook/sprite.png) -88px -53px no-repeat} +div.facebook .pp_top .pp_middle{background:url(../images/prettyPhoto/facebook/contentPatternTop.png) top left repeat-x} +div.facebook .pp_top .pp_right{background:url(../images/prettyPhoto/facebook/sprite.png) -110px -53px no-repeat} +div.facebook .pp_content_container .pp_left{background:url(../images/prettyPhoto/facebook/contentPatternLeft.png) top left repeat-y} +div.facebook .pp_content_container .pp_right{background:url(../images/prettyPhoto/facebook/contentPatternRight.png) top right repeat-y} +div.facebook .pp_expand{background:url(../images/prettyPhoto/facebook/sprite.png) -31px -26px no-repeat;cursor:pointer} +div.facebook .pp_expand:hover{background:url(../images/prettyPhoto/facebook/sprite.png) -31px -47px no-repeat;cursor:pointer} +div.facebook .pp_contract{background:url(../images/prettyPhoto/facebook/sprite.png) 0 -26px no-repeat;cursor:pointer} +div.facebook .pp_contract:hover{background:url(../images/prettyPhoto/facebook/sprite.png) 0 -47px no-repeat;cursor:pointer} +div.facebook .pp_close{width:22px;height:22px;background:url(../images/prettyPhoto/facebook/sprite.png) -1px -1px no-repeat;cursor:pointer} +div.facebook .pp_description{margin:0 37px 0 0} +div.facebook .pp_loaderIcon{background:url(../images/prettyPhoto/facebook/loader.gif) center center no-repeat} +div.facebook .pp_arrow_previous{background:url(../images/prettyPhoto/facebook/sprite.png) 0 -71px no-repeat;height:22px;margin-top:0;width:22px} +div.facebook .pp_arrow_previous.disabled{background-position:0 -96px;cursor:default} +div.facebook .pp_arrow_next{background:url(../images/prettyPhoto/facebook/sprite.png) -32px -71px no-repeat;height:22px;margin-top:0;width:22px} +div.facebook .pp_arrow_next.disabled{background-position:-32px -96px;cursor:default} +div.facebook .pp_nav{margin-top:0} +div.facebook .pp_nav p{font-size:15px;padding:0 3px 0 4px} +div.facebook .pp_nav .pp_play{background:url(../images/prettyPhoto/facebook/sprite.png) -1px -123px no-repeat;height:22px;width:22px} +div.facebook .pp_nav .pp_pause{background:url(../images/prettyPhoto/facebook/sprite.png) -32px -123px no-repeat;height:22px;width:22px} +div.facebook .pp_next:hover{background:url(../images/prettyPhoto/facebook/btnNext.png) center right no-repeat;cursor:pointer} +div.facebook .pp_previous:hover{background:url(../images/prettyPhoto/facebook/btnPrevious.png) center left no-repeat;cursor:pointer} +div.facebook .pp_bottom .pp_left{background:url(../images/prettyPhoto/facebook/sprite.png) -88px -80px no-repeat} +div.facebook .pp_bottom .pp_middle{background:url(../images/prettyPhoto/facebook/contentPatternBottom.png) top left repeat-x} +div.facebook .pp_bottom .pp_right{background:url(../images/prettyPhoto/facebook/sprite.png) -110px -80px no-repeat} +div.pp_pic_holder a:focus{outline:none} +div.pp_overlay{background:#000;display:none;left:0;position:absolute;top:0;width:100%;z-index:9500} +div.pp_pic_holder{display:none;position:absolute;width:100px;z-index:10000} +.pp_content{height:40px;min-width:40px} +* html .pp_content{width:40px} +.pp_content_container{position:relative;text-align:left;width:100%} +.pp_content_container .pp_left{padding-left:20px} +.pp_content_container .pp_right{padding-right:20px} +.pp_content_container .pp_details{float:left;margin:10px 0 2px} +.pp_description{display:none;margin:0} +.pp_social{float:left;margin:0} +.pp_social .facebook{float:left;margin-left:5px;width:55px;overflow:hidden} +.pp_social .twitter{float:left} +.pp_nav{clear:right;float:left;margin:3px 10px 0 0} +.pp_nav p{float:left;white-space:nowrap;margin:2px 4px} +.pp_nav .pp_play,.pp_nav .pp_pause{float:left;margin-right:4px;text-indent:-10000px} +a.pp_arrow_previous,a.pp_arrow_next{display:block;float:left;height:15px;margin-top:3px;overflow:hidden;text-indent:-10000px;width:14px} +.pp_hoverContainer{position:absolute;top:0;width:100%;z-index:2000} +.pp_gallery{display:none;left:50%;margin-top:-50px;position:absolute;z-index:10000} +.pp_gallery div{float:left;overflow:hidden;position:relative} +.pp_gallery ul{float:left;height:35px;position:relative;white-space:nowrap;margin:0 0 0 5px;padding:0} +.pp_gallery ul a{border:1px rgba(0,0,0,0.5) solid;display:block;float:left;height:33px;overflow:hidden} +.pp_gallery ul a img{border:0} +.pp_gallery li{display:block;float:left;margin:0 5px 0 0;padding:0} +.pp_gallery li.default a{background:url(../images/prettyPhoto/facebook/default_thumbnail.gif) 0 0 no-repeat;display:block;height:33px;width:50px} +.pp_gallery .pp_arrow_previous,.pp_gallery .pp_arrow_next{margin-top:7px!important} +a.pp_next{background:url(../images/prettyPhoto/light_rounded/btnNext.png) 10000px 10000px no-repeat;display:block;float:right;height:100%;text-indent:-10000px;width:49%} +a.pp_previous{background:url(../images/prettyPhoto/light_rounded/btnNext.png) 10000px 10000px no-repeat;display:block;float:left;height:100%;text-indent:-10000px;width:49%} +a.pp_expand,a.pp_contract{cursor:pointer;display:none;height:20px;position:absolute;right:30px;text-indent:-10000px;top:10px;width:20px;z-index:20000} +a.pp_close{position:absolute;right:0;top:0;display:block;line-height:22px;text-indent:-10000px} +.pp_loaderIcon{display:block;height:24px;left:50%;position:absolute;top:50%;width:24px;margin:-12px 0 0 -12px} +#pp_full_res{line-height:1!important} +#pp_full_res .pp_inline{text-align:left} +#pp_full_res .pp_inline p{margin:0 0 15px} +div.ppt{color:#fff;display:none;font-size:17px;z-index:9999;margin:0 0 5px 15px} +div.pp_default .pp_content,div.light_rounded .pp_content{background-color:#fff} +div.pp_default #pp_full_res .pp_inline,div.light_rounded .pp_content .ppt,div.light_rounded #pp_full_res .pp_inline,div.light_square .pp_content .ppt,div.light_square #pp_full_res .pp_inline,div.facebook .pp_content .ppt,div.facebook #pp_full_res .pp_inline{color:#000} +div.pp_default .pp_gallery ul li a:hover,div.pp_default .pp_gallery ul li.selected a,.pp_gallery ul a:hover,.pp_gallery li.selected a{border-color:#fff} +div.pp_default .pp_details,div.light_rounded .pp_details,div.dark_rounded .pp_details,div.dark_square .pp_details,div.light_square .pp_details,div.facebook .pp_details{position:relative} +div.light_rounded .pp_top .pp_middle,div.light_rounded .pp_content_container .pp_left,div.light_rounded .pp_content_container .pp_right,div.light_rounded .pp_bottom .pp_middle,div.light_square .pp_left,div.light_square .pp_middle,div.light_square .pp_right,div.light_square .pp_content,div.facebook .pp_content{background:#fff} +div.light_rounded .pp_description,div.light_square .pp_description{margin-right:85px} +div.light_rounded .pp_gallery a.pp_arrow_previous,div.light_rounded .pp_gallery a.pp_arrow_next,div.dark_rounded .pp_gallery a.pp_arrow_previous,div.dark_rounded .pp_gallery a.pp_arrow_next,div.dark_square .pp_gallery a.pp_arrow_previous,div.dark_square .pp_gallery a.pp_arrow_next,div.light_square .pp_gallery a.pp_arrow_previous,div.light_square .pp_gallery a.pp_arrow_next{margin-top:12px!important} +div.light_rounded .pp_arrow_previous.disabled,div.dark_rounded .pp_arrow_previous.disabled,div.dark_square .pp_arrow_previous.disabled,div.light_square .pp_arrow_previous.disabled{background-position:0 -87px;cursor:default} +div.light_rounded .pp_arrow_next.disabled,div.dark_rounded .pp_arrow_next.disabled,div.dark_square .pp_arrow_next.disabled,div.light_square .pp_arrow_next.disabled{background-position:-22px -87px;cursor:default} +div.light_rounded .pp_loaderIcon,div.light_square .pp_loaderIcon{background:url(../images/prettyPhoto/light_rounded/loader.gif) center center no-repeat} +div.dark_rounded .pp_top .pp_middle,div.dark_rounded .pp_content,div.dark_rounded .pp_bottom .pp_middle{background:url(../images/prettyPhoto/dark_rounded/contentPattern.png) top left repeat} +div.dark_rounded .currentTextHolder,div.dark_square .currentTextHolder{color:#c4c4c4} +div.dark_rounded #pp_full_res .pp_inline,div.dark_square #pp_full_res .pp_inline{color:#fff} +.pp_top,.pp_bottom{height:20px;position:relative} +* html .pp_top,* html .pp_bottom{padding:0 20px} +.pp_top .pp_left,.pp_bottom .pp_left{height:20px;left:0;position:absolute;width:20px} +.pp_top .pp_middle,.pp_bottom .pp_middle{height:20px;left:20px;position:absolute;right:20px} +* html .pp_top .pp_middle,* html .pp_bottom .pp_middle{left:0;position:static} +.pp_top .pp_right,.pp_bottom .pp_right{height:20px;left:auto;position:absolute;right:0;top:0;width:20px} +.pp_fade,.pp_gallery li.default a img{display:none} \ No newline at end of file diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/dark_rounded/btnNext.png b/chimere/static/prettyPhoto/images/prettyPhoto/dark_rounded/btnNext.png new file mode 100755 index 0000000..b28c1ef Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/dark_rounded/btnNext.png differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/dark_rounded/btnPrevious.png b/chimere/static/prettyPhoto/images/prettyPhoto/dark_rounded/btnPrevious.png new file mode 100755 index 0000000..e0cd9c4 Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/dark_rounded/btnPrevious.png differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/dark_rounded/contentPattern.png b/chimere/static/prettyPhoto/images/prettyPhoto/dark_rounded/contentPattern.png new file mode 100755 index 0000000..e5a047c Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/dark_rounded/contentPattern.png differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/dark_rounded/default_thumbnail.gif b/chimere/static/prettyPhoto/images/prettyPhoto/dark_rounded/default_thumbnail.gif new file mode 100755 index 0000000..2b1280f Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/dark_rounded/default_thumbnail.gif differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/dark_rounded/loader.gif b/chimere/static/prettyPhoto/images/prettyPhoto/dark_rounded/loader.gif new file mode 100755 index 0000000..50820ee Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/dark_rounded/loader.gif differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/dark_rounded/sprite.png b/chimere/static/prettyPhoto/images/prettyPhoto/dark_rounded/sprite.png new file mode 100755 index 0000000..fb8c0f8 Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/dark_rounded/sprite.png differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/dark_square/btnNext.png b/chimere/static/prettyPhoto/images/prettyPhoto/dark_square/btnNext.png new file mode 100755 index 0000000..b28c1ef Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/dark_square/btnNext.png differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/dark_square/btnPrevious.png b/chimere/static/prettyPhoto/images/prettyPhoto/dark_square/btnPrevious.png new file mode 100755 index 0000000..e0cd9c4 Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/dark_square/btnPrevious.png differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/dark_square/contentPattern.png b/chimere/static/prettyPhoto/images/prettyPhoto/dark_square/contentPattern.png new file mode 100755 index 0000000..7b50aff Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/dark_square/contentPattern.png differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/dark_square/default_thumbnail.gif b/chimere/static/prettyPhoto/images/prettyPhoto/dark_square/default_thumbnail.gif new file mode 100755 index 0000000..2b1280f Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/dark_square/default_thumbnail.gif differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/dark_square/loader.gif b/chimere/static/prettyPhoto/images/prettyPhoto/dark_square/loader.gif new file mode 100755 index 0000000..50820ee Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/dark_square/loader.gif differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/dark_square/sprite.png b/chimere/static/prettyPhoto/images/prettyPhoto/dark_square/sprite.png new file mode 100755 index 0000000..4fe3547 Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/dark_square/sprite.png differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/default/default_thumb.png b/chimere/static/prettyPhoto/images/prettyPhoto/default/default_thumb.png new file mode 100644 index 0000000..1a26e4b Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/default/default_thumb.png differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/default/loader.gif b/chimere/static/prettyPhoto/images/prettyPhoto/default/loader.gif new file mode 100644 index 0000000..35d397c Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/default/loader.gif differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/default/sprite.png b/chimere/static/prettyPhoto/images/prettyPhoto/default/sprite.png new file mode 100644 index 0000000..5f07ddc Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/default/sprite.png differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/default/sprite_next.png b/chimere/static/prettyPhoto/images/prettyPhoto/default/sprite_next.png new file mode 100644 index 0000000..379dc0d Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/default/sprite_next.png differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/default/sprite_prev.png b/chimere/static/prettyPhoto/images/prettyPhoto/default/sprite_prev.png new file mode 100644 index 0000000..1ee4865 Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/default/sprite_prev.png differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/default/sprite_x.png b/chimere/static/prettyPhoto/images/prettyPhoto/default/sprite_x.png new file mode 100644 index 0000000..d4433ab Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/default/sprite_x.png differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/default/sprite_y.png b/chimere/static/prettyPhoto/images/prettyPhoto/default/sprite_y.png new file mode 100644 index 0000000..7786ab5 Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/default/sprite_y.png differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/facebook/btnNext.png b/chimere/static/prettyPhoto/images/prettyPhoto/facebook/btnNext.png new file mode 100755 index 0000000..e809c3b Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/facebook/btnNext.png differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/facebook/btnPrevious.png b/chimere/static/prettyPhoto/images/prettyPhoto/facebook/btnPrevious.png new file mode 100755 index 0000000..0812542 Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/facebook/btnPrevious.png differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/facebook/contentPatternBottom.png b/chimere/static/prettyPhoto/images/prettyPhoto/facebook/contentPatternBottom.png new file mode 100755 index 0000000..a9be3b2 Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/facebook/contentPatternBottom.png differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/facebook/contentPatternLeft.png b/chimere/static/prettyPhoto/images/prettyPhoto/facebook/contentPatternLeft.png new file mode 100755 index 0000000..277c87a Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/facebook/contentPatternLeft.png differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/facebook/contentPatternRight.png b/chimere/static/prettyPhoto/images/prettyPhoto/facebook/contentPatternRight.png new file mode 100755 index 0000000..76e50d0 Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/facebook/contentPatternRight.png differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/facebook/contentPatternTop.png b/chimere/static/prettyPhoto/images/prettyPhoto/facebook/contentPatternTop.png new file mode 100755 index 0000000..8b110ba Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/facebook/contentPatternTop.png differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/facebook/default_thumbnail.gif b/chimere/static/prettyPhoto/images/prettyPhoto/facebook/default_thumbnail.gif new file mode 100755 index 0000000..2b1280f Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/facebook/default_thumbnail.gif differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/facebook/loader.gif b/chimere/static/prettyPhoto/images/prettyPhoto/facebook/loader.gif new file mode 100755 index 0000000..7ac990c Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/facebook/loader.gif differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/facebook/sprite.png b/chimere/static/prettyPhoto/images/prettyPhoto/facebook/sprite.png new file mode 100755 index 0000000..660a254 Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/facebook/sprite.png differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/light_rounded/btnNext.png b/chimere/static/prettyPhoto/images/prettyPhoto/light_rounded/btnNext.png new file mode 100755 index 0000000..b28c1ef Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/light_rounded/btnNext.png differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/light_rounded/btnPrevious.png b/chimere/static/prettyPhoto/images/prettyPhoto/light_rounded/btnPrevious.png new file mode 100755 index 0000000..e0cd9c4 Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/light_rounded/btnPrevious.png differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/light_rounded/default_thumbnail.gif b/chimere/static/prettyPhoto/images/prettyPhoto/light_rounded/default_thumbnail.gif new file mode 100755 index 0000000..2b1280f Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/light_rounded/default_thumbnail.gif differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/light_rounded/loader.gif b/chimere/static/prettyPhoto/images/prettyPhoto/light_rounded/loader.gif new file mode 100755 index 0000000..7ac990c Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/light_rounded/loader.gif differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/light_rounded/sprite.png b/chimere/static/prettyPhoto/images/prettyPhoto/light_rounded/sprite.png new file mode 100755 index 0000000..7f28379 Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/light_rounded/sprite.png differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/light_square/btnNext.png b/chimere/static/prettyPhoto/images/prettyPhoto/light_square/btnNext.png new file mode 100755 index 0000000..b28c1ef Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/light_square/btnNext.png differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/light_square/btnPrevious.png b/chimere/static/prettyPhoto/images/prettyPhoto/light_square/btnPrevious.png new file mode 100755 index 0000000..e0cd9c4 Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/light_square/btnPrevious.png differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/light_square/default_thumbnail.gif b/chimere/static/prettyPhoto/images/prettyPhoto/light_square/default_thumbnail.gif new file mode 100755 index 0000000..2b1280f Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/light_square/default_thumbnail.gif differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/light_square/loader.gif b/chimere/static/prettyPhoto/images/prettyPhoto/light_square/loader.gif new file mode 100755 index 0000000..7ac990c Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/light_square/loader.gif differ diff --git a/chimere/static/prettyPhoto/images/prettyPhoto/light_square/sprite.png b/chimere/static/prettyPhoto/images/prettyPhoto/light_square/sprite.png new file mode 100755 index 0000000..4fe3547 Binary files /dev/null and b/chimere/static/prettyPhoto/images/prettyPhoto/light_square/sprite.png differ diff --git a/chimere/static/prettyPhoto/js/jquery.prettyPhoto.js b/chimere/static/prettyPhoto/js/jquery.prettyPhoto.js new file mode 100644 index 0000000..7e60981 --- /dev/null +++ b/chimere/static/prettyPhoto/js/jquery.prettyPhoto.js @@ -0,0 +1,83 @@ +/* ------------------------------------------------------------------------ + Class: prettyPhoto + Use: Lightbox clone for jQuery + Author: Stephane Caron (http://www.no-margin-for-errors.com) + Version: 3.1.4 +------------------------------------------------------------------------- */ + +(function($){$.prettyPhoto={version:'3.1.4'};$.fn.prettyPhoto=function(pp_settings){pp_settings=jQuery.extend({hook:'rel',animation_speed:'fast',ajaxcallback:function(){},slideshow:5000,autoplay_slideshow:false,opacity:0.80,show_title:true,allow_resize:true,allow_expand:true,default_width:500,default_height:344,counter_separator_label:'/',theme:'pp_default',horizontal_padding:20,hideflash:false,wmode:'opaque',autoplay:true,modal:false,deeplinking:true,overlay_gallery:true,overlay_gallery_max:30,keyboard_shortcuts:true,changepicturecallback:function(){},callback:function(){},ie6_fallback:true,markup:'
\ +
 
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ + Expand \ +
\ + next \ + previous \ +
\ +
\ +
\ +
\ + Previous \ +

0/0

\ + Next \ +
\ +

\ +
{pp_social}
\ + Close \ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
',gallery_markup:'',image_markup:'',flash_markup:'',quicktime_markup:'',iframe_markup:'',inline_markup:'
{content}
',custom_markup:'',social_tools:'
'},pp_settings);var matchedObjects=this,percentBased=false,pp_dimensions,pp_open,pp_contentHeight,pp_contentWidth,pp_containerHeight,pp_containerWidth,windowHeight=$(window).height(),windowWidth=$(window).width(),pp_slideshow;doresize=true,scroll_pos=_get_scroll();$(window).unbind('resize.prettyphoto').bind('resize.prettyphoto',function(){_center_overlay();_resize_overlay();});if(pp_settings.keyboard_shortcuts){$(document).unbind('keydown.prettyphoto').bind('keydown.prettyphoto',function(e){if(typeof $pp_pic_holder!='undefined'){if($pp_pic_holder.is(':visible')){switch(e.keyCode){case 37:$.prettyPhoto.changePage('previous');e.preventDefault();break;case 39:$.prettyPhoto.changePage('next');e.preventDefault();break;case 27:if(!settings.modal) +$.prettyPhoto.close();e.preventDefault();break;};};};});};$.prettyPhoto.initialize=function(){settings=pp_settings;if(settings.theme=='pp_default')settings.horizontal_padding=16;if(settings.ie6_fallback&&$.browser.msie&&parseInt($.browser.version)==6)settings.theme="light_square";theRel=$(this).attr(settings.hook);galleryRegExp=/\[(?:.*)\]/;isSet=(galleryRegExp.exec(theRel))?true:false;pp_images=(isSet)?jQuery.map(matchedObjects,function(n,i){if($(n).attr(settings.hook).indexOf(theRel)!=-1)return $(n).attr('href');}):$.makeArray($(this).attr('href'));pp_titles=(isSet)?jQuery.map(matchedObjects,function(n,i){if($(n).attr(settings.hook).indexOf(theRel)!=-1)return($(n).find('img').attr('alt'))?$(n).find('img').attr('alt'):"";}):$.makeArray($(this).find('img').attr('alt'));pp_descriptions=(isSet)?jQuery.map(matchedObjects,function(n,i){if($(n).attr(settings.hook).indexOf(theRel)!=-1)return($(n).attr('title'))?$(n).attr('title'):"";}):$.makeArray($(this).attr('title'));if(pp_images.length>settings.overlay_gallery_max)settings.overlay_gallery=false;set_position=jQuery.inArray($(this).attr('href'),pp_images);rel_index=(isSet)?set_position:$("a["+settings.hook+"^='"+theRel+"']").index($(this));_build_overlay(this);if(settings.allow_resize) +$(window).bind('scroll.prettyphoto',function(){_center_overlay();});$.prettyPhoto.open();return false;} +$.prettyPhoto.open=function(event){if(typeof settings=="undefined"){settings=pp_settings;if($.browser.msie&&$.browser.version==6)settings.theme="light_square";pp_images=$.makeArray(arguments[0]);pp_titles=(arguments[1])?$.makeArray(arguments[1]):$.makeArray("");pp_descriptions=(arguments[2])?$.makeArray(arguments[2]):$.makeArray("");isSet=(pp_images.length>1)?true:false;set_position=(arguments[3])?arguments[3]:0;_build_overlay(event.target);} +if($.browser.msie&&$.browser.version==6)$('select').css('visibility','hidden');if(settings.hideflash)$('object,embed,iframe[src*=youtube],iframe[src*=vimeo]').css('visibility','hidden');_checkPosition($(pp_images).size());$('.pp_loaderIcon').show();if(settings.deeplinking) +setHashtag();if(settings.social_tools){facebook_like_link=settings.social_tools.replace('{location_href}',encodeURIComponent(location.href));$pp_pic_holder.find('.pp_social').html(facebook_like_link);} +if($ppt.is(':hidden'))$ppt.css('opacity',0).show();$pp_overlay.show().fadeTo(settings.animation_speed,settings.opacity);$pp_pic_holder.find('.currentTextHolder').text((set_position+1)+settings.counter_separator_label+$(pp_images).size());if(typeof pp_descriptions[set_position]!='undefined'&&pp_descriptions[set_position]!=""){$pp_pic_holder.find('.pp_description').show().html(unescape(pp_descriptions[set_position]));}else{$pp_pic_holder.find('.pp_description').hide();} +movie_width=(parseFloat(getParam('width',pp_images[set_position])))?getParam('width',pp_images[set_position]):settings.default_width.toString();movie_height=(parseFloat(getParam('height',pp_images[set_position])))?getParam('height',pp_images[set_position]):settings.default_height.toString();percentBased=false;if(movie_height.indexOf('%')!=-1){movie_height=parseFloat(($(window).height()*parseFloat(movie_height)/100)-150);percentBased=true;} +if(movie_width.indexOf('%')!=-1){movie_width=parseFloat(($(window).width()*parseFloat(movie_width)/100)-150);percentBased=true;} +$pp_pic_holder.fadeIn(function(){(settings.show_title&&pp_titles[set_position]!=""&&typeof pp_titles[set_position]!="undefined")?$ppt.html(unescape(pp_titles[set_position])):$ppt.html(' ');imgPreloader="";skipInjection=false;switch(_getFileType(pp_images[set_position])){case'image':imgPreloader=new Image();nextImage=new Image();if(isSet&&set_position<$(pp_images).size()-1)nextImage.src=pp_images[set_position+1];prevImage=new Image();if(isSet&&pp_images[set_position-1])prevImage.src=pp_images[set_position-1];$pp_pic_holder.find('#pp_full_res')[0].innerHTML=settings.image_markup.replace(/{path}/g,pp_images[set_position]);imgPreloader.onload=function(){pp_dimensions=_fitToViewport(imgPreloader.width,imgPreloader.height);_showContent();};imgPreloader.onerror=function(){alert('Image cannot be loaded. Make sure the path is correct and image exist.');$.prettyPhoto.close();};imgPreloader.src=pp_images[set_position];break;case'youtube':pp_dimensions=_fitToViewport(movie_width,movie_height);movie_id=getParam('v',pp_images[set_position]);if(movie_id==""){movie_id=pp_images[set_position].split('youtu.be/');movie_id=movie_id[1];if(movie_id.indexOf('?')>0) +movie_id=movie_id.substr(0,movie_id.indexOf('?'));if(movie_id.indexOf('&')>0) +movie_id=movie_id.substr(0,movie_id.indexOf('&'));} +movie='http://www.youtube.com/embed/'+movie_id;(getParam('rel',pp_images[set_position]))?movie+="?rel="+getParam('rel',pp_images[set_position]):movie+="?rel=1";if(settings.autoplay)movie+="&autoplay=1";toInject=settings.iframe_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,movie);break;case'vimeo':pp_dimensions=_fitToViewport(movie_width,movie_height);movie_id=pp_images[set_position];var regExp=/http:\/\/(www\.)?vimeo.com\/(\d+)/;var match=movie_id.match(regExp);movie='http://player.vimeo.com/video/'+match[2]+'?title=0&byline=0&portrait=0';if(settings.autoplay)movie+="&autoplay=1;";vimeo_width=pp_dimensions['width']+'/embed/?moog_width='+pp_dimensions['width'];toInject=settings.iframe_markup.replace(/{width}/g,vimeo_width).replace(/{height}/g,pp_dimensions['height']).replace(/{path}/g,movie);break;case'quicktime':pp_dimensions=_fitToViewport(movie_width,movie_height);pp_dimensions['height']+=15;pp_dimensions['contentHeight']+=15;pp_dimensions['containerHeight']+=15;toInject=settings.quicktime_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,pp_images[set_position]).replace(/{autoplay}/g,settings.autoplay);break;case'flash':pp_dimensions=_fitToViewport(movie_width,movie_height);flash_vars=pp_images[set_position];flash_vars=flash_vars.substring(pp_images[set_position].indexOf('flashvars')+10,pp_images[set_position].length);filename=pp_images[set_position];filename=filename.substring(0,filename.indexOf('?'));toInject=settings.flash_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,filename+'?'+flash_vars);break;case'iframe':pp_dimensions=_fitToViewport(movie_width,movie_height);frame_url=pp_images[set_position];frame_url=frame_url.substr(0,frame_url.indexOf('iframe')-1);toInject=settings.iframe_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{path}/g,frame_url);break;case'ajax':doresize=false;pp_dimensions=_fitToViewport(movie_width,movie_height);doresize=true;skipInjection=true;$.get(pp_images[set_position],function(responseHTML){toInject=settings.inline_markup.replace(/{content}/g,responseHTML);$pp_pic_holder.find('#pp_full_res')[0].innerHTML=toInject;_showContent();});break;case'custom':pp_dimensions=_fitToViewport(movie_width,movie_height);toInject=settings.custom_markup;break;case'inline':myClone=$(pp_images[set_position]).clone().append('
').css({'width':settings.default_width}).wrapInner('
').appendTo($('body')).show();doresize=false;pp_dimensions=_fitToViewport($(myClone).width(),$(myClone).height());doresize=true;$(myClone).remove();toInject=settings.inline_markup.replace(/{content}/g,$(pp_images[set_position]).html());break;};if(!imgPreloader&&!skipInjection){$pp_pic_holder.find('#pp_full_res')[0].innerHTML=toInject;_showContent();};});return false;};$.prettyPhoto.changePage=function(direction){currentGalleryPage=0;if(direction=='previous'){set_position--;if(set_position<0)set_position=$(pp_images).size()-1;}else if(direction=='next'){set_position++;if(set_position>$(pp_images).size()-1)set_position=0;}else{set_position=direction;};rel_index=set_position;if(!doresize)doresize=true;if(settings.allow_expand){$('.pp_contract').removeClass('pp_contract').addClass('pp_expand');} +_hideContent(function(){$.prettyPhoto.open();});};$.prettyPhoto.changeGalleryPage=function(direction){if(direction=='next'){currentGalleryPage++;if(currentGalleryPage>totalPage)currentGalleryPage=0;}else if(direction=='previous'){currentGalleryPage--;if(currentGalleryPage<0)currentGalleryPage=totalPage;}else{currentGalleryPage=direction;};slide_speed=(direction=='next'||direction=='previous')?settings.animation_speed:0;slide_to=currentGalleryPage*(itemsPerPage*itemWidth);$pp_gallery.find('ul').animate({left:-slide_to},slide_speed);};$.prettyPhoto.startSlideshow=function(){if(typeof pp_slideshow=='undefined'){$pp_pic_holder.find('.pp_play').unbind('click').removeClass('pp_play').addClass('pp_pause').click(function(){$.prettyPhoto.stopSlideshow();return false;});pp_slideshow=setInterval($.prettyPhoto.startSlideshow,settings.slideshow);}else{$.prettyPhoto.changePage('next');};} +$.prettyPhoto.stopSlideshow=function(){$pp_pic_holder.find('.pp_pause').unbind('click').removeClass('pp_pause').addClass('pp_play').click(function(){$.prettyPhoto.startSlideshow();return false;});clearInterval(pp_slideshow);pp_slideshow=undefined;} +$.prettyPhoto.close=function(){if($pp_overlay.is(":animated"))return;$.prettyPhoto.stopSlideshow();$pp_pic_holder.stop().find('object,embed').css('visibility','hidden');$('div.pp_pic_holder,div.ppt,.pp_fade').fadeOut(settings.animation_speed,function(){$(this).remove();});$pp_overlay.fadeOut(settings.animation_speed,function(){if($.browser.msie&&$.browser.version==6)$('select').css('visibility','visible');if(settings.hideflash)$('object,embed,iframe[src*=youtube],iframe[src*=vimeo]').css('visibility','visible');$(this).remove();$(window).unbind('scroll.prettyphoto');clearHashtag();settings.callback();doresize=true;pp_open=false;delete settings;});};function _showContent(){$('.pp_loaderIcon').hide();projectedTop=scroll_pos['scrollTop']+((windowHeight/2)-(pp_dimensions['containerHeight']/2));if(projectedTop<0)projectedTop=0;$ppt.fadeTo(settings.animation_speed,1);$pp_pic_holder.find('.pp_content').animate({height:pp_dimensions['contentHeight'],width:pp_dimensions['contentWidth']},settings.animation_speed);$pp_pic_holder.animate({'top':projectedTop,'left':((windowWidth/2)-(pp_dimensions['containerWidth']/2)<0)?0:(windowWidth/2)-(pp_dimensions['containerWidth']/2),width:pp_dimensions['containerWidth']},settings.animation_speed,function(){$pp_pic_holder.find('.pp_hoverContainer,#fullResImage').height(pp_dimensions['height']).width(pp_dimensions['width']);$pp_pic_holder.find('.pp_fade').fadeIn(settings.animation_speed);if(isSet&&_getFileType(pp_images[set_position])=="image"){$pp_pic_holder.find('.pp_hoverContainer').show();}else{$pp_pic_holder.find('.pp_hoverContainer').hide();} +if(settings.allow_expand){if(pp_dimensions['resized']){$('a.pp_expand,a.pp_contract').show();}else{$('a.pp_expand').hide();}} +if(settings.autoplay_slideshow&&!pp_slideshow&&!pp_open)$.prettyPhoto.startSlideshow();settings.changepicturecallback();pp_open=true;});_insert_gallery();pp_settings.ajaxcallback();};function _hideContent(callback){$pp_pic_holder.find('#pp_full_res object,#pp_full_res embed').css('visibility','hidden');$pp_pic_holder.find('.pp_fade').fadeOut(settings.animation_speed,function(){$('.pp_loaderIcon').show();callback();});};function _checkPosition(setCount){(setCount>1)?$('.pp_nav').show():$('.pp_nav').hide();};function _fitToViewport(width,height){resized=false;_getDimensions(width,height);imageWidth=width,imageHeight=height;if(((pp_containerWidth>windowWidth)||(pp_containerHeight>windowHeight))&&doresize&&settings.allow_resize&&!percentBased){resized=true,fitting=false;while(!fitting){if((pp_containerWidth>windowWidth)){imageWidth=(windowWidth-200);imageHeight=(height/width)*imageWidth;}else if((pp_containerHeight>windowHeight)){imageHeight=(windowHeight-200);imageWidth=(width/height)*imageHeight;}else{fitting=true;};pp_containerHeight=imageHeight,pp_containerWidth=imageWidth;};_getDimensions(imageWidth,imageHeight);if((pp_containerWidth>windowWidth)||(pp_containerHeight>windowHeight)){_fitToViewport(pp_containerWidth,pp_containerHeight)};};return{width:Math.floor(imageWidth),height:Math.floor(imageHeight),containerHeight:Math.floor(pp_containerHeight),containerWidth:Math.floor(pp_containerWidth)+(settings.horizontal_padding*2),contentHeight:Math.floor(pp_contentHeight),contentWidth:Math.floor(pp_contentWidth),resized:resized};};function _getDimensions(width,height){width=parseFloat(width);height=parseFloat(height);$pp_details=$pp_pic_holder.find('.pp_details');$pp_details.width(width);detailsHeight=parseFloat($pp_details.css('marginTop'))+parseFloat($pp_details.css('marginBottom'));$pp_details=$pp_details.clone().addClass(settings.theme).width(width).appendTo($('body')).css({'position':'absolute','top':-10000});detailsHeight+=$pp_details.height();detailsHeight=(detailsHeight<=34)?36:detailsHeight;if($.browser.msie&&$.browser.version==7)detailsHeight+=8;$pp_details.remove();$pp_title=$pp_pic_holder.find('.ppt');$pp_title.width(width);titleHeight=parseFloat($pp_title.css('marginTop'))+parseFloat($pp_title.css('marginBottom'));$pp_title=$pp_title.clone().appendTo($('body')).css({'position':'absolute','top':-10000});titleHeight+=$pp_title.height();$pp_title.remove();pp_contentHeight=height+detailsHeight;pp_contentWidth=width;pp_containerHeight=pp_contentHeight+titleHeight+$pp_pic_holder.find('.pp_top').height()+$pp_pic_holder.find('.pp_bottom').height();pp_containerWidth=width;} +function _getFileType(itemSrc){if(itemSrc.match(/youtube\.com\/watch/i)||itemSrc.match(/youtu\.be/i)){return'youtube';}else if(itemSrc.match(/vimeo\.com/i)){return'vimeo';}else if(itemSrc.match(/\b.mov\b/i)){return'quicktime';}else if(itemSrc.match(/\b.swf\b/i)){return'flash';}else if(itemSrc.match(/\biframe=true\b/i)){return'iframe';}else if(itemSrc.match(/\bajax=true\b/i)){return'ajax';}else if(itemSrc.match(/\bcustom=true\b/i)){return'custom';}else if(itemSrc.substr(0,1)=='#'){return'inline';}else{return'image';};};function _center_overlay(){if(doresize&&typeof $pp_pic_holder!='undefined'){scroll_pos=_get_scroll();contentHeight=$pp_pic_holder.height(),contentwidth=$pp_pic_holder.width();projectedTop=(windowHeight/2)+scroll_pos['scrollTop']-(contentHeight/2);if(projectedTop<0)projectedTop=0;if(contentHeight>windowHeight) +return;$pp_pic_holder.css({'top':projectedTop,'left':(windowWidth/2)+scroll_pos['scrollLeft']-(contentwidth/2)});};};function _get_scroll(){if(self.pageYOffset){return{scrollTop:self.pageYOffset,scrollLeft:self.pageXOffset};}else if(document.documentElement&&document.documentElement.scrollTop){return{scrollTop:document.documentElement.scrollTop,scrollLeft:document.documentElement.scrollLeft};}else if(document.body){return{scrollTop:document.body.scrollTop,scrollLeft:document.body.scrollLeft};};};function _resize_overlay(){windowHeight=$(window).height(),windowWidth=$(window).width();if(typeof $pp_overlay!="undefined")$pp_overlay.height($(document).height()).width(windowWidth);};function _insert_gallery(){if(isSet&&settings.overlay_gallery&&_getFileType(pp_images[set_position])=="image"&&(settings.ie6_fallback&&!($.browser.msie&&parseInt($.browser.version)==6))){itemWidth=52+5;navWidth=(settings.theme=="facebook"||settings.theme=="pp_default")?50:30;itemsPerPage=Math.floor((pp_dimensions['containerWidth']-100-navWidth)/itemWidth);itemsPerPage=(itemsPerPage";};toInject=settings.gallery_markup.replace(/{gallery}/g,toInject);$pp_pic_holder.find('#pp_full_res').after(toInject);$pp_gallery=$('.pp_pic_holder .pp_gallery'),$pp_gallery_li=$pp_gallery.find('li');$pp_gallery.find('.pp_arrow_next').click(function(){$.prettyPhoto.changeGalleryPage('next');$.prettyPhoto.stopSlideshow();return false;});$pp_gallery.find('.pp_arrow_previous').click(function(){$.prettyPhoto.changeGalleryPage('previous');$.prettyPhoto.stopSlideshow();return false;});$pp_pic_holder.find('.pp_content').hover(function(){$pp_pic_holder.find('.pp_gallery:not(.disabled)').fadeIn();},function(){$pp_pic_holder.find('.pp_gallery:not(.disabled)').fadeOut();});itemWidth=52+5;$pp_gallery_li.each(function(i){$(this).find('a').click(function(){$.prettyPhoto.changePage(i);$.prettyPhoto.stopSlideshow();return false;});});};if(settings.slideshow){$pp_pic_holder.find('.pp_nav').prepend('Play') +$pp_pic_holder.find('.pp_nav .pp_play').click(function(){$.prettyPhoto.startSlideshow();return false;});} +$pp_pic_holder.attr('class','pp_pic_holder '+settings.theme);$pp_overlay.css({'opacity':0,'height':$(document).height(),'width':$(window).width()}).bind('click',function(){if(!settings.modal)$.prettyPhoto.close();});$('a.pp_close').bind('click',function(){$.prettyPhoto.close();return false;});if(settings.allow_expand){$('a.pp_expand').bind('click',function(e){if($(this).hasClass('pp_expand')){$(this).removeClass('pp_expand').addClass('pp_contract');doresize=false;}else{$(this).removeClass('pp_contract').addClass('pp_expand');doresize=true;};_hideContent(function(){$.prettyPhoto.open();});return false;});} +$pp_pic_holder.find('.pp_previous, .pp_nav .pp_arrow_previous').bind('click',function(){$.prettyPhoto.changePage('previous');$.prettyPhoto.stopSlideshow();return false;});$pp_pic_holder.find('.pp_next, .pp_nav .pp_arrow_next').bind('click',function(){$.prettyPhoto.changePage('next');$.prettyPhoto.stopSlideshow();return false;});_center_overlay();};if(!pp_alreadyInitialized&&getHashtag()){pp_alreadyInitialized=true;hashIndex=getHashtag();hashRel=hashIndex;hashIndex=hashIndex.substring(hashIndex.indexOf('/')+1,hashIndex.length-1);hashRel=hashRel.substring(0,hashRel.indexOf('/'));setTimeout(function(){$("a["+pp_settings.hook+"^='"+hashRel+"']:eq("+hashIndex+")").trigger('click');},50);} +return this.unbind('click.prettyphoto').bind('click.prettyphoto',$.prettyPhoto.initialize);};function getHashtag(){url=location.href;hashtag=(url.indexOf('#prettyPhoto')!==-1)?decodeURI(url.substring(url.indexOf('#prettyPhoto')+1,url.length)):false;return hashtag;};function setHashtag(){if(typeof theRel=='undefined')return;location.hash=theRel+'/'+rel_index+'/';};function clearHashtag(){if(location.href.indexOf('#prettyPhoto')!==-1)location.hash="prettyPhoto";} +function getParam(name,url){name=name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");var regexS="[\\?&]"+name+"=([^&#]*)";var regex=new RegExp(regexS);var results=regex.exec(url);return(results==null)?"":results[1];}})(jQuery);var pp_alreadyInitialized=false; \ No newline at end of file diff --git a/chimere/templates/chimere/blocks/head_jme.html b/chimere/templates/chimere/blocks/head_jme.html index f2b6767..a3fe683 100644 --- a/chimere/templates/chimere/blocks/head_jme.html +++ b/chimere/templates/chimere/blocks/head_jme.html @@ -11,3 +11,7 @@ + + + + diff --git a/chimere/templates/chimere/blocks/multimedia_file.html b/chimere/templates/chimere/blocks/multimedia_file.html index d9f1fb9..a1e9868 100644 --- a/chimere/templates/chimere/blocks/multimedia_file.html +++ b/chimere/templates/chimere/blocks/multimedia_file.html @@ -1,6 +1,6 @@ {% load i18n %} {% if multimedia_item.picture %} -{{multimedia_item.name}}{% endif %} +{{multimedia_item.name}}{% endif %} {% if multimedia_item.url %} {% if multimedia_item.multimedia_type.iframe %} diff --git a/chimere/templates/chimere/detail.html b/chimere/templates/chimere/detail.html index bea1caf..95e6a70 100644 --- a/chimere/templates/chimere/detail.html +++ b/chimere/templates/chimere/detail.html @@ -97,4 +97,11 @@ $('#show_gallery_link').click(function(){ $("#gallery-{{marker.pk}}").dialog('open'); return false; }); + +$(document).ready(function(){ + $("a[rel^='prettyPhoto']").prettyPhoto({ + show_title: false, + social_tools: '' + }); +}); diff --git a/chimere/templates/chimere/main_map.html b/chimere/templates/chimere/main_map.html index f84b372..5a49e46 100644 --- a/chimere/templates/chimere/main_map.html +++ b/chimere/templates/chimere/main_map.html @@ -1,11 +1,11 @@ {% extends "chimere/base.html" %} {% load i18n unlocalize_point chimere_tags %} {% block extra_head %} -{{ block.super }} {% head_jquery %} {% head_chimere %} {% head_jme %} +{{ block.super }} {% endblock %} {% block message_edit %}{% endblock %} {% block sidebar %} diff --git a/example_project/settings.py b/example_project/settings.py index 742314d..dec2827 100644 --- a/example_project/settings.py +++ b/example_project/settings.py @@ -72,6 +72,11 @@ CHIMERE_OSM_PASSWORD = 'test' # encoding for shapefile import CHIMERE_SHAPEFILE_ENCODING = 'ISO-8859-1' +# thumbnail +CHIMERE_THUMBS_SCALE_HEIGHT=250 +CHIMERE_THUMBS_SCALE_WIDTH=None + + ADMINS = ( # ('Your Name', 'your_email@domain.com'), ) -- cgit v1.2.3