diff --git a/dist/main.css b/dist/main.css index bd59564..08d666c 100644 Binary files a/dist/main.css and b/dist/main.css differ diff --git a/dist/main.js b/dist/main.js index 3870557..d3366d0 100644 Binary files a/dist/main.js and b/dist/main.js differ diff --git a/dist/view.js b/dist/view.js index 293a8e7..5cfaba9 100644 Binary files a/dist/view.js and b/dist/view.js differ diff --git a/src/gulpfile.js b/src/gulpfile.js index 694f9d0..cd70b80 100644 --- a/src/gulpfile.js +++ b/src/gulpfile.js @@ -16,15 +16,12 @@ var catchError = function(err) { paths.view = { js: [ '../src/scripts/_gup.js', + '../src/scripts/build.js', '../src/scripts/view/main.js' ], - coffee: [ - '../src/scripts/build.coffee' - ], scripts: [ 'bower_components/jQuery/dist/jquery.min.js', - '../dist/_view--javascript.js', - '../dist/_view--coffee.js' + '../dist/_view--javascript.js' ] } @@ -41,20 +38,7 @@ gulp.task('view--js', function() { }); -gulp.task('view--coffee', function() { - - var stream = - gulp.src(paths.view.coffee) - .pipe(plugins.coffee({bare: true})) - .on('error', catchError) - .pipe(plugins.concat('_view--coffee.js', {newLine: "\n"})) - .pipe(gulp.dest('../dist/')); - - return stream; - -}); - -gulp.task('view--scripts', ['view--js', 'view--coffee'], function() { +gulp.task('view--scripts', ['view--js'], function() { var stream = gulp.src(paths.view.scripts) @@ -73,9 +57,6 @@ paths.main = { js: [ '../src/scripts/*.js' ], - coffee: [ - '../src/scripts/*.coffee' - ], scripts: [ 'bower_components/jQuery/dist/jquery.min.js', 'bower_components/js-md5/js/md5.min.js', @@ -83,8 +64,7 @@ paths.main = { 'bower_components/mousetrap/plugins/global-bind/mousetrap-global-bind.min.js', 'bower_components/basicContext/dist/basicContext.min.js', 'bower_components/basicModal/dist/basicModal.min.js', - '../dist/_main--javascript.js', - '../dist/_main--coffee.js' + '../dist/_main--javascript.js' ], scss: [ '../src/styles/*.scss' @@ -109,20 +89,7 @@ gulp.task('main--js', function() { }); -gulp.task('main--coffee', function() { - - var stream = - gulp.src(paths.main.coffee) - .pipe(plugins.coffee({bare: true})) - .on('error', catchError) - .pipe(plugins.concat('_main--coffee.js', {newLine: "\n"})) - .pipe(gulp.dest('../dist/')); - - return stream; - -}); - -gulp.task('main--scripts', ['main--js', 'main--coffee'], function() { +gulp.task('main--scripts', ['main--js'], function() { var stream = gulp.src(paths.main.scripts) @@ -174,10 +141,8 @@ gulp.task('default', ['view--scripts', 'main--scripts', 'main--styles'], functio gulp.task('watch', ['default'], function() { gulp.watch(paths.view.js, ['view--scripts']); - gulp.watch(paths.view.coffee, ['view--scripts']); gulp.watch(paths.main.js, ['main--scripts']); - gulp.watch(paths.main.coffee, ['main--scripts']); gulp.watch(paths.main.scss, ['main--styles']); }); \ No newline at end of file diff --git a/src/package.json b/src/package.json index 774efd8..f74c5de 100644 --- a/src/package.json +++ b/src/package.json @@ -13,7 +13,6 @@ "gulp": "^3.8.10", "gulp-6to5": "^3.0.0", "gulp-autoprefixer": "2.1.0", - "gulp-coffee": "^2.2.0", "gulp-concat": "^2.4.3", "gulp-load-plugins": "^0.8.0", "gulp-minify-css": "^0.4.3", diff --git a/src/scripts/build.coffee b/src/scripts/build.coffee deleted file mode 100644 index 4bc37db..0000000 --- a/src/scripts/build.coffee +++ /dev/null @@ -1,370 +0,0 @@ -### -# @description This module is used to generate HTML-Code. -# @copyright 2014 by Tobias Reich -### - -window.build = {} - -build.iconic = (icon, classes, path) -> - - path = path || 'src/images/iconic.svg' - classes = classes || '' - - "" - -build.divider = (title) -> - - "

#{ title }

" - -build.editIcon = (id) -> - - "
#{ build.iconic('pencil') }
" - -build.multiselect = (top, left) -> - - "
" - -build.album = (data) -> - - return '' if not data? - - title = data.title - longTitle = '' - typeThumb = '' - - if title? and title.length > 18 - - title = data.title.substr(0, 18) + '...' - longTitle = data.title - - if data.thumb0.split('.').pop() is 'svg' then typeThumb = 'nonretina' - - html = """ -
- thumb - thumb - thumb -
- """ - - if data.password and lychee.publicMode is false - html += "

#{ title }

"; - else - html += "

#{ title }

" - - html += """ - #{ data.sysdate } -
- """ - - if lychee.publicMode is false - - if data.star is '1' then html += "#{ build.iconic('star') }" - if data.public is '1' then html += "#{ build.iconic('eye') }" - if data.unsorted is '1' then html += "#{ build.iconic('list') }" - if data.recent is '1' then html += "#{ build.iconic('clock') }" - - html += "
" - - return html - -build.photo = (data) -> - - return '' if not data? - - title = data.title - longTitle = '' - - if title? and title.length > 18 - - title = data.title.substr(0, 18) + '...' - longTitle = data.title - - html = """ -
- thumb -
-

#{ title }

- """ - - if data.cameraDate is 1 - html += "#{ data.sysdate }" - else - html += "#{ data.sysdate }" - - html += "
" - - if data.star is '1' then html += "#{ build.iconic('star') }" - if lychee.publicMode is false and data.public is '1' and album.json.public isnt '1' then html += "#{ build.iconic('eye') }" - - html += "
" - - return html - -build.imageview = (data, size, visibleControls) -> - - return '' if not data? - - html = """ -
-
- """ - - if size is 'big' - - if visibleControls is true - html += "
" - else - html += "
" - - else if size is 'medium' - - if visibleControls is true - html += "
" - else - html += "
" - - else if size is 'small' - - if visibleControls is true - html += "
" - else - html += "
" - - return html - -build.no_content = (typ) -> - - html = """ -
- - """ - - switch typ - when 'search' then html += "

No results

" - when 'share' then html += "

No public albums

" - when 'cog' then html += "

No configuration

" - - html += "
" - - return html - -build.uploadModal = (title, files) -> - - html = """ -

#{ title }

-
- """ - - i = 0 - file = null - - while i < files.length - - file = files[i] - - if file.name.length > 40 - file.name = file.name.substr(0, 17) + '...' + file.name.substr(file.name.length-20, 20) - - html += """ -
- #{ lychee.escapeHTML(file.name) } - """ - - if file.supported is true then html += "" - else html += "Not supported" - - html += """ -

-
- """ - - i++ - - html += """ -
- """ - - return html - -build.tags = (tags, forView) -> - - html = '' - - if forView is true or lychee.publicMode is true then editTagsHTML = '' - else editTagsHTML = ' ' + build.editIcon('edit_tags') - - if tags isnt '' - - tags = tags.split ',' - - tags.forEach (tag, index, array) -> - html += "#{ tag }" - - html += editTagsHTML - - else - - html = "
No Tags#{ editTagsHTML }
" - - return html - -build.infoboxPhoto = (data, forView) -> - - html = "" - - switch data.public - when '0' then visible = 'No' - when '1' then visible = 'Yes' - when '2' then visible = 'Yes (Album)' - else visible = '-' - - if forView is true or lychee.publicMode is true then editTitleHTML = '' - else editTitleHTML = ' ' + build.editIcon('edit_title') - - if forView is true or lychee.publicMode is true then editDescriptionHTML = '' - else editDescriptionHTML = ' ' + build.editIcon('edit_description') - - infos = [ - ['', 'Basics'] - ['Title', data.title + editTitleHTML] - ['Uploaded', data.sysdate] - ['Description', data.description + editDescriptionHTML] - ['', 'Image'] - ['Size', data.size] - ['Format', data.type] - ['Resolution', data.width + ' x ' + data.height] - ['Tags', build.tags(data.tags, forView)] - ] - - exifHash = data.takestamp+data.make+data.model+data.shutter+data.aperture+data.focal+data.iso - - if exifHash isnt '0' or exifHash isnt '0' - - infos = infos.concat [ - ['', 'Camera'] - ['Captured', data.takedate] - ['Make', data.make] - ['Type/Model', data.model] - ['Shutter Speed', data.shutter] - ['Aperture', data.aperture] - ['Focal Length', data.focal] - ['ISO', data.iso] - ] - - infos = infos.concat [ - ['', 'Share'] - ['Public', visible] - ] - - infos.forEach (info, i, items) -> - - if info[1] is '' or - not info[1]? - - info[1] = '-' - - switch info[0] - - when '' - - # Divider - html += """ - -

#{ info[1] }

- - """ - - when 'Tags' - - # Tags - if forView isnt true and lychee.publicMode is false - - html += """ -
-

#{ info[0] }

-
#{ info[1] }
- """ - - else - - # Item - html += """ - - #{ info[0] } - #{ info[1] } - - """ - - html += """ - -
- """ - - return html - -build.infoboxAlbum = (data, forView) -> - - html = "" - - switch data.public - when '0' then visible = 'No' - when '1' then visible = 'Yes' - else visible = '-' - - switch data.password - when false then password = 'No' - when true then password = 'Yes' - else password = '-' - - switch data.downloadable - when '0' then downloadable = 'No' - when '1' then downloadable = 'Yes' - else downloadable = '-' - - if forView is true or lychee.publicMode is true then editTitleHTML = '' - else editTitleHTML = ' ' + build.editIcon('edit_title_album') - - if forView is true or lychee.publicMode is true then editDescriptionHTML = '' - else editDescriptionHTML = ' ' + build.editIcon('edit_description_album') - - infos = [ - ['', 'Basics'] - ['Title', data.title + editTitleHTML] - ['Description', data.description + editDescriptionHTML] - ['', 'Album'] - ['Created', data.sysdate] - ['Images', data.num] - ['', 'Share'] - ['Public', visible] - ['Downloadable', downloadable] - ['Password', password] - ] - - infos.forEach (info, i, items) -> - - if info[0] is '' - - # Divider - html += """ - -

#{ info[1] }

- - """ - - else - - # Item - html += """ - - - - - """ - - html += """ -
#{ info[0] }#{ info[1] }
-
- """ - - return html \ No newline at end of file diff --git a/src/scripts/build.js b/src/scripts/build.js new file mode 100644 index 0000000..6fa9c45 --- /dev/null +++ b/src/scripts/build.js @@ -0,0 +1,505 @@ +/** + * @description This module is used to generate HTML-Code. + * @copyright 2014 by Tobias Reich + */ + +window.build = {} + +build.iconic = function(icon, classes, path) { + + var html = ''; + + path = path || 'src/images/iconic.svg'; + classes = classes || ''; + + html = ` + + + + ` + + return html; + +} + +build.divider = function(title) { + + var html = ''; + + html = ` +
+

${ title }

+
+ ` + + return html; + +} + +build.editIcon = function(id) { + + var html = ''; + + html = `
${ build.iconic('pencil') }
` + + return html; + +} + +build.multiselect = function(top, left) { + + var html = ''; + + html = `
` + + return html; + +} + +build.album = function(data) { + + if (data===null||data===undefined) return ''; + + var html = '', + title = data.title, + longTitle = '', + typeThumb = ''; + + if (title!==null&&title.length>18) { + + title = data.title.substr(0, 18) + '...'; + longTitle = data.title; + + } + + if (data.thumb0.split('.').pop()==='svg') typeThumb = 'nonretina'; + + html = ` +
+ thumb + thumb + thumb +
+ ` + + if (data.password&&lychee.publicMode===false) { + + html += ` +

+ ${ title } +

+ ` + + } else { + + html += `

${ title }

` + + } + + html += ` + ${ data.sysdate } +
+ ` + + if (lychee.publicMode===false) { + + if (data.star==='1') html += `${ build.iconic('star') }`; + if (data.public==='1') html += `${ build.iconic('eye') }`; + if (data.unsorted==='1') html += `${ build.iconic('list') }`; + if (data.recent==='1') html += `${ build.iconic('clock') }`; + + } + + html += '
' + + return html; + +} + +build.photo = function(data) { + + if (data===null||data===undefined) return ''; + + var html = '', + title = data.title, + longTitle = ''; + + if (title!==null&&title.length>18) { + + title = data.title.substr(0, 18) + '...'; + longTitle = data.title; + + } + + html = ` +
+ thumb +
+

${ title }

+ ` + + if (data.cameraDate===1) html += `${ data.sysdate }`; + else html += `${ data.sysdate }`; + + html += '
'; + + if (data.star==='1') + html += `${ build.iconic('star') }`; + + if (lychee.publicMode===false&&data.public==='1'&&album.json.public!=='1') + html += `${ build.iconic('eye') }`; + + html += '
'; + + return html + +} + +build.imageview = function(data, size, visibleControls) { + + if (data===null||data===undefined) return ''; + + var html = ''; + + html = ` +
+
+ ` + + if (size==='big') { + + if (visibleControls===true) + html += `
`; + else + html += `
`; + + } else if (size==='medium') { + + if (visibleControls===true) + html += `
`; + else + html += `
`; + + } else if (size==='small') { + + if (visibleControls===true) + html += `
`; + else + html += `
`; + + } + + return html; + +} + +build.no_content = function(typ) { + + var html; + + html = ` +
+ + ` + + switch (typ) { + case 'search': html += '

No results

'; + break; + case 'share': html += '

No public albums

'; + break; + case 'cog': html += '

No configuration

'; + break; + } + + html += '
'; + + return html; + +} + +build.uploadModal = function(title, files) { + + var html = '', + i = 0, + file = null; + + html = ` +

${ title }

+
+ ` + + while (i40) file.name = file.name.substr(0, 17) + '...' + file.name.substr(file.name.length-20, 20); + + html += ` +
+ ${ lychee.escapeHTML(file.name) } + ` + + if (file.supported===true) html += ``; + else html += `Not supported`; + + html += ` +

+
+ ` + + i++; + + } + + html += '
'; + + return html; + +} + +build.tags = function(tags, forView) { + + var html = '', + editTagsHTML = ''; + + if (forView!==true&&lychee.publicMode!==true) editTagsHTML = ' ' + build.editIcon('edit_tags'); + + if (tags!=='') { + + tags = tags.split(','); + + tags.forEach(function(tag, index, array) { + html += `${ tag }` + }); + + html += editTagsHTML; + + } else { + + html = `
No Tags${ editTagsHTML }
`; + + } + + return html; + +} + +build.infoboxPhoto = function(data, forView) { + + var html = '', + visible = '', + editTitleHTML = '', + editDescriptionHTML = '', + exifHash = '', + info = []; + + switch (data.public) { + + case '0': visible = 'No'; + break; + case '1': visible = 'Yes'; + break; + case '2': visible = 'Yes (Album)'; + break; + default: visible = '-'; + break; + + } + + if (forView!==true&&lychee.publicMode!==true) { + editTitleHTML = ' ' + build.editIcon('edit_title'); + editDescriptionHTML = ' ' + build.editIcon('edit_description'); + } + + infos = [ + ['', 'Basics'], + ['Title', data.title + editTitleHTML], + ['Uploaded', data.sysdate], + ['Description', data.description + editDescriptionHTML], + ['', 'Image'], + ['Size', data.size], + ['Format', data.type], + ['Resolution', data.width + ' x ' + data.height], + ['Tags', build.tags(data.tags, forView)] + ] + + exifHash = data.takestamp+data.make+data.model+data.shutter+data.aperture+data.focal+data.iso; + + if (exifHash!=='0') { + + infos = infos.concat([ + ['', 'Camera'], + ['Captured', data.takedate], + ['Make', data.make], + ['Type/Model', data.model], + ['Shutter Speed', data.shutter], + ['Aperture', data.aperture], + ['Focal Length', data.focal], + ['ISO', data.iso] + ]); + + } + + infos = infos.concat([ + ['', 'Share'], + ['Public', visible] + ]); + + infos.forEach(function(info, i, items) { + + if (info[1]===''||info[1]===null||info[1]===undefined) info[1] = '-'; + + switch (info[0]) { + + case '': + + // Divider + html += ` + +
+

${ info[1] }

+
+ + ` + + break; + + case 'Tags': + + // Tags + if (forView!==true&&lychee.publicMode===false) { + + html += ` +
+
+

${ info[0] }

+
+
${ info[1] }
+ ` + + } + + break; + + default: + + // Item + html += ` + + ${ info[0] } + ${ info[1] } + + ` + + break; + + } + + + }); + + html += ` + +
+ ` + + return html; + +} + +build.infoboxAlbum = function(data, forView) { + + var html = '', + visible = '', + password = '', + downloadable = '', + editTitleHTML = '', + editDescriptionHTML = '', + infos = []; + + switch (data.public) { + + case '0': visible = 'No'; + break; + case '1': visible = 'Yes'; + break; + default: visible = '-'; + break; + + } + + switch (data.password) { + + case false: password = 'No'; + break; + case true: password = 'Yes'; + break; + default: password = '-'; + break; + + } + + switch (data.downloadable) { + + case '0': downloadable = 'No'; + break; + case '1': downloadable = 'Yes'; + break; + default: downloadable = '-'; + break; + + } + + if (forView!==true&&lychee.publicMode!==true) { + editTitleHTML = ' ' + build.editIcon('edit_title_album'); + editDescriptionHTML = ' ' + build.editIcon('edit_description_album'); + } + + infos = [ + ['', 'Basics'], + ['Title', data.title + editTitleHTML], + ['Description', data.description + editDescriptionHTML], + ['', 'Album'], + ['Created', data.sysdate], + ['Images', data.num], + ['', 'Share'], + ['Public', visible], + ['Downloadable', downloadable], + ['Password', password] + ] + + infos.forEach(function(info, i, items) { + + if (info[0]==='') { + + // Divider + html += ` + +
+

${ info[1] }

+
+ + ` + + } else { + + // Item + html += ` + + + + + ` + + } + + }); + + html += ` +
${ info[0] }${ info[1] }
+
+ ` + + return html; + +} \ No newline at end of file