Skip to content

Commit

Permalink
Release 1.0.1 (#35)
Browse files Browse the repository at this point in the history
* Update documentation

* Add more glasses and piercings

* Adjust glasses colors.

* Update documenation with some links

* Updating link in README.md

* Finalize changes to docs

* Add glasses emoji to slider handle

* Add hijab, turban, and yarmulke

* Add additional emoji (some aren't working) and move controls into accordion (unstyled)

* Fix nose piercing position

* Fix nose piercing position (more)

* Hopefully make the hijab look more natural

* Add Friendly Faces logo.

* Start work on major JS refactor

* Update package-lock.json

* Update index.html to match master

* Add logos to match master

* Add dynamic controls generation
- Refactor almost all javascript to rely on JSON object found in /js/src/options/ directory
- Modified HTML file for correct site name
- Set release version in package.json to 0.9.0 prior to push to stable

* Update mobile behavior

* Update readme with completed feature requests and add new feature request for shareable URL)

* Set face accordion to be open by default

* Update accordion styles

* Add transition duration for face container to handle transition from circle to square

* Style accordion

* Test Save Image PHP Script

* Fix issue with sectionCount variable not being global

* Fix save_image.php

* 🐛 Fix: Mobile Download Issue

Fixes issues with avatar downloading as unspecified filetype on mobile devices.

* 🐛 Fix: Download as application/octet-stream

Download now initializes a download instead of opening image in a new tab

* 🎨 Style: Remove focus outline from collapse toggles

* Debugging avatar download

* Address syntax error in main.scss

* 🐛 Fix: Download href now the right value

* Debug issue with download.php

* 🐛 Fix download.php

* Attempting to disable the button temporarily for download

* Debug

* Turn border radius back on

* Testing FileSaver.js integration

* Fix: blob.js not loading

* Remove allowTaint setting

* Fix issue with FileSaver and Blob

* add $link declaration

* Fixing download link click event

* Fix: Syntax error in js

* Fix: Images downloading mid css animation
- Remove CSS transition property until another method can be established

* Fix: Re-enable download button after download

* Save image to generated directory for later use

* Removing deprecated files

* debug saveAvatar

* Update hair images

* Update headcovering colors

* Update eyebrow colors

* Update beard colors

* Add more skin tones

* Update head covering variable

* Add eye colors

* 🐎 Add image optimization to Gulpfile.js
- Add gulp-imagemin to optimize files
- Move images to /img/src
- Final images will be in /img/dist

* Add eye color as a control

* Try to resolve merge conflict with eye psd

* Move new eye images into correct director

* Fixing files

* Fix naming issue for eye images

* Refine eye graphics

* Update readme

* Update version number to the big one point oh!

* Add function to retrieve image list

* Adding preload functions file

* Debug issue with preload

* Debug issue with preload: 2

* Fix: Issue with php script

* 🐎 Add image preloading and progress bar

* 🍬 Feature: Add multiple size download (PR #38)

- Address Feature Request #36
- Adds button group with Large/Medium/Small options
- Fixes issue with generated
     - Address Bug #37

* Version 1.0.1 Preflight
  • Loading branch information
cvasquez authored and seanmetzgar committed Feb 27, 2019
1 parent 5c909a8 commit 7ae601f
Show file tree
Hide file tree
Showing 449 changed files with 5,982 additions and 922 deletions.
2 changes: 1 addition & 1 deletion CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ further defined and clarified by project maintainers.
## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at [INSERT EMAIL ADDRESS]. All
reported by contacting the project team at [[email protected]](mailto:[email protected]?subject=ClickPop%2Ffacecreator%3A%20Code%20of%20Conduct%20Violation%20Report). All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Expand Down
13 changes: 7 additions & 6 deletions CONTRIBUTOR.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
# Contributing to Face Creator
:+1::tada: **First off, thanks for taking the time to contribute** :tada::+1:

The following is a set of guidelines for contributing to Face Creator, which is hosted in the [cvasquez/facecreator](https://github.com/cvasquez/facecreator) repository on GitHub. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
The following is a set of guidelines for contributing to Face Creator, which is hosted in the [ClickPop/facecreator](https://github.com/ClickPop/facecreator) repository on GitHub. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.

## Code of Conduct

This project and everyone contributing in it is governed by our [Code of Conduct](CODE_OF_CONDUCT.md). As a contributor, you are expected to uphold this code. Please report unacceptable behavior to [[email protected]](mailto:[email protected]?subject=cvasquez%2Ffacecreator%3A%20Code%20of%20Conduct%20Violation%20Report).
This project and everyone contributing in it is governed by our [Code of Conduct](CODE_OF_CONDUCT.md). As a contributor, you are expected to uphold this code. Please report unacceptable behavior to [[email protected]](mailto:[email protected]?subject=ClickPop%2Ffacecreator%3A%20Code%20of%20Conduct%20Violation%20Report).

## How Can I Contribute

### Reporting Bugs

This section guides you through submitting a bug report for Face Creator. Following these guidelines helps the maintainers and the community understand your report :pencil:, reproduce the behavior :computer: :computer:, find related reports :mag_right:, and [hopefully/ultimately] fix them :tada::balloon:.
This section guides you through submitting a bug report for Face Creator. Following these guidelines helps the maintainers and the community understand your report :pencil:, reproduce the behavior :computer: :computer:, find related reports :mag_right:, and *hopefully/ultimately* fix them :tada::balloon:.

**Before submitting an issue**, please do a [cursory search][issues] to ensure the problem has not already been submitted. **If one has been created, and it is still open**, add a comment to the existing report instead of creating a new one. If no similar issue can be found, please fill out [the required template](ISSUE_TEMPLATE.md), and [submit it here][new-issue].
**Before submitting an issue**, please do a [cursory search][issues] to ensure the problem has not already been submitted. **If one has been created, and it is still open**, add a comment to the existing report instead of creating a new one. If no similar issue can be found, please fill out [the required template][new-issue], add a descriptive title, and submit the bug report.

> **Note:** When creating your report, please use a clear and descriptive title to identify the problem.
Expand All @@ -25,7 +25,7 @@ When submitting your issue, be sure to include as much information about how the

This section guides you through submitting an enhancement suggestion for Face Creator, including completely new features and minor improvements to existing functionality. Following these guidelines helps maintainers and the community understand your suggestion :pencil: and find related suggestions :mag_right:.

**Before submitting a suggestion**, please do a [cursory search][issues] to ensure a similar suggestion has not already been submitted. **If one has been created, and it is still open**, add a comment to the existing request instead of creating a new one. If no similar request can be found, please fill out [the required template](SUGGESTION_TEMPLATE.md), and [submit it here][new-issue].
**Before submitting a suggestion**, please do a [cursory search][issues] to ensure a similar enhancement has not already been suggested. **If one has been created, and it is still open**, add a comment to the existing request instead of creating a new one. If no similar request can be found, please fill out [the required template][new-feature], add a descriptive title, and submit the enhancement request.

> **Note:** When creating a request, please use a clear and descriptive title to identify the suggestion.
Expand All @@ -44,4 +44,5 @@ The following guides will be coming soon:
> **Note:** Check back frequently, we update a lot!
[issues]:https://github.com/cvasquez/facecreator/issues
[new-issue]:https://github.com/cvasquez/facecreator/issues/new
[new-issue]:https://github.com/ClickPop/facecreator/issues/new?assignees=&labels=bug&template=bug_report.md&title=%5BBUG%5D
[new-feature]:https://github.com/ClickPop/facecreator/issues/new?assignees=&labels=enhancement&template=feature_request.md&title=%5BFEATURE%5D
270 changes: 159 additions & 111 deletions Gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,156 +14,199 @@ const fancyLog = require("fancy-log");
const replace = require("gulp-string-replace");
const environments = require("gulp-environments");
const rename = require("gulp-rename");
const imagemin = require("gulp-imagemin");
const imageminOptipng = require('imagemin-optipng-progressive');
const p = require("./package.json");

const envBuild = environments.make("build");
const jsFolder = "js";
const cssFolder = "css";
const sassFolder = "scss";
const imgFolder = "img";
const vendorFolder = "vendor";
const srcFolder = "src";
const distFolder = "dist";
const incFolder = "includes";

//File Arrays
var paths = {
scripts: {
vendor: [
"./" + jsFolder + "/" + vendorFolder + "/jquery/jquery.js", /* Disable for WP */
"./" + jsFolder + "/" + vendorFolder + "/html2canvas/html2canvas.js",
"./" + jsFolder + "/" + vendorFolder + "/bootstrap/bootstrap.bundle.js",
"./" + jsFolder + "/" + vendorFolder + "/rangeslider/rangeslider.js",
],
src: [
"./" + jsFolder + "/" + srcFolder + "/prototypes.js",
"./" + jsFolder + "/" + srcFolder + "/main.js"
],
watch: [
"./" + jsFolder + "/" + srcFolder + "/**.js"
]
},
styles: {
src: [
"./" + sassFolder + "/main.scss"
],
watch: [
"./" + sassFolder + "/main.scss",
"./" + jsFolder + "/" + incFolder + "/**.scss"
]
},
replace: [
"humans.txt"
scripts: {
vendor: [
"./" + jsFolder + "/" + srcFolder + "/polyfill/**/*.js",
"./" + jsFolder + "/" + vendorFolder + "/canvas2blob/canvas2blob.js",
"./" + jsFolder + "/" + vendorFolder + "/filesaver/filesaver.js",
"./" + jsFolder + "/" + vendorFolder + "/html2canvas/html2canvas.js",
"./" + jsFolder + "/" + vendorFolder + "/jquery/jquery.js", /* Disable for WP */
"./" + jsFolder + "/" + vendorFolder + "/bootstrap/bootstrap.bundle.js",
"./" + jsFolder + "/" + vendorFolder + "/rangeslider/rangeslider.js"
],
clean: {
scripts: [
"./" + jsFolder + "/" + vendorFolder,
"./" + jsFolder + "/" + distFolder
],
styles: [
"./" + sassFolder + "/" + vendorFolder,
"./" + cssFolder
]
}
src: [
"./" + jsFolder + "/" + srcFolder + "/functions/**/*.js",
"./" + jsFolder + "/" + srcFolder + "/options/**/*.js",
"./" + jsFolder + "/" + srcFolder + "/main.js"
],
watch: [
"./" + jsFolder + "/" + srcFolder + "/**/*.js"
]
},
styles: {
src: [
"./" + sassFolder + "/main.scss"
],
watch: [
"./" + sassFolder + "/main.scss",
"./" + sassFolder + "/" + incFolder + "/**/*.scss"
]
},
images: {
src: [
"./" + imgFolder + "/" + srcFolder + "/**/*.{png,gif,jpg,jpeg}"
],
watch: [
"./" + imgFolder + "/" + srcFolder + "/**/*.{png,gif,jpg,jpeg}"
]
},
replace: [
"humans.txt"
],
clean: {
scripts: [
"./" + jsFolder + "/" + vendorFolder,
"./" + jsFolder + "/" + distFolder
],
styles: [
"./" + sassFolder + "/" + vendorFolder,
"./" + cssFolder
],
images: [
"./" + imgFolder + "/" + distFolder,
]
}
};

function date_today() {
var today = new Date();
var day = today.getDate();
var month = today.getMonth() + 1; //January is 0!
var year = today.getFullYear();
var today = new Date();
var day = today.getDate();
var month = today.getMonth() + 1; //January is 0!
var year = today.getFullYear();

if (day < 10) {
day = "0" + day;
}
if (day < 10) {
day = "0" + day;
}

if (month < 10) {
month = "0" + month;
}
if (month < 10) {
month = "0" + month;
}

today = year + "/" + month + "/" + day;
return today;
today = year + "/" + month + "/" + day;
return today;
}

function vendor_jquery_scripts() {
"use strict";
return src("./node_modules/jquery/dist/**/*.*")
.pipe(dest("./" + jsFolder + "/" + vendorFolder + "/jquery"));
function vendor_canvas2blob_scripts() {
"use strict";
return src("./node_modules/canvas-toBlob/canvas-toBlob.js")
.pipe(rename("canvas2blob.js"))
.pipe(dest("./" + jsFolder + "/" + vendorFolder + "/canvas2blob"));
}

function vendor_filesaver_scripts() {
"use strict";
return src("./node_modules/file-saver/dist/FileSaver.js")
.pipe(rename("filesaver.js"))
.pipe(dest("./" + jsFolder + "/" + vendorFolder + "/filesaver"));
}

function vendor_jquery_scripts() {
"use strict";
return src("./node_modules/jquery/dist/**/*.*")
.pipe(dest("./" + jsFolder + "/" + vendorFolder + "/jquery"));
}

function vendor_html2canvas_scripts() {
"use strict";
return src("./node_modules/html2canvas/dist/html2canvas.js")
.pipe(dest("./" + jsFolder + "/" + vendorFolder + "/html2canvas"));
"use strict";
return src("./node_modules/html2canvas/dist/html2canvas.js")
.pipe(dest("./" + jsFolder + "/" + vendorFolder + "/html2canvas"));
}

function vendor_bootstrap_scripts() {
"use strict";
return src("./node_modules/bootstrap/dist/js/**/*.*")
.pipe(dest("./" + jsFolder + "/" + vendorFolder + "/bootstrap"));
"use strict";
return src("./node_modules/bootstrap/dist/js/**/*.*")
.pipe(dest("./" + jsFolder + "/" + vendorFolder + "/bootstrap"));
}

function vendor_rangeslider_scripts() {
"use strict";
return src("./node_modules/rangeslider.js/dist/rangeslider.js")
.pipe(dest("./" + jsFolder + "/" + vendorFolder + "/rangeslider"));
"use strict";
return src("./node_modules/rangeslider.js/dist/rangeslider.js")
.pipe(dest("./" + jsFolder + "/" + vendorFolder + "/rangeslider"));
}

function vendor_bootstrap_styles() {
"use strict";
return src("./node_modules/bootstrap/scss/**/*.*")
.pipe(dest("./" + sassFolder + "/" + vendorFolder + "/bootstrap"));
"use strict";
return src("./node_modules/bootstrap/scss/**/*.*")
.pipe(dest("./" + sassFolder + "/" + vendorFolder + "/bootstrap"));
}

function vendor_rangeslider_styles() {
"use strict";
return src("./node_modules/rangeslider.js/dist/rangeslider.css")
.pipe(rename("rangeslider.scss"))
.pipe(dest("./" + sassFolder + "/" + vendorFolder + "/rangeslider"));
"use strict";
return src("./node_modules/rangeslider.js/dist/rangeslider.css")
.pipe(rename("rangeslider.scss"))
.pipe(dest("./" + sassFolder + "/" + vendorFolder + "/rangeslider"));
}

function build_styles() {
"use strict";
return src(paths.styles.src)
.pipe(sourcemaps.init())
.pipe(sass().on("error", function (error) {
fancyLog.error(error);
}))
.pipe(autoprefixer())
.pipe(concat("main.css"))
.pipe(stripStyleComments({preserve: false}))
.pipe(cssmin())
.pipe(sourcemaps.write("./"))
.pipe(dest("./" + cssFolder));
"use strict";
return src(paths.styles.src)
.pipe(sourcemaps.init())
.pipe(sass().on("error", function (error) {
fancyLog.error(error);
}))
.pipe(autoprefixer())
.pipe(concat("main.css"))
.pipe(stripStyleComments({preserve: false}))
.pipe(cssmin())
.pipe(sourcemaps.write("./"))
.pipe(dest("./" + cssFolder));
}

function build_scripts() {
"use strict";
return src(paths.scripts.vendor.concat(paths.scripts.src))
.pipe(sourcemaps.init())
.pipe(concat("main.js"))
.pipe(envBuild(stripComments()))
.pipe(envBuild(uglify()))
.pipe(sourcemaps.write("./"))
.pipe(dest("./" + jsFolder + "/" + distFolder));
"use strict";
return src(paths.scripts.vendor.concat(paths.scripts.src))
.pipe(sourcemaps.init())
.pipe(concat("main.js"))
.pipe(envBuild(stripComments()))
.pipe(envBuild(uglify()))
.pipe(sourcemaps.write("./"))
.pipe(dest("./" + jsFolder + "/" + distFolder));
}

function build_images() {
"use strict";
return src(paths.images.src)
.pipe(envBuild(imagemin({use: [imageminOptipng()]})))
.pipe(dest("./" + imgFolder + "/" + distFolder));
}

function clean_styles() {
"use strict";
return del(paths.clean.styles);
"use strict";
return del(paths.clean.styles);
}

function clean_scripts() {
"use strict";
return del(paths.clean.scripts);
"use strict";
return del(paths.clean.scripts);
}

function clean_images() {
"use strict";
return del(paths.clean.images);
}

function server_replace() {
"use strict";
return src(paths.replace, {base: "./"})
.pipe(envBuild(replace("{{VERSION}}", p.version)))
.pipe(envBuild(replace("{{COMMIT_DATE}}", date_today())))
.pipe(envBuild(dest("./")));
"use strict";
return src(paths.replace, {base: "./"})
.pipe(envBuild(replace("{{VERSION}}", p.version)))
.pipe(envBuild(replace("{{COMMIT_DATE}}", date_today())))
.pipe(envBuild(dest("./")));
}

function watch_files() {
Expand All @@ -172,19 +215,24 @@ function watch_files() {
watch(paths.styles.watch, series(clean_styles, move_styles, build_styles));
}

const clean = parallel(clean_styles, clean_scripts);
const move_styles = parallel(
const clean = parallel(
clean_styles,
clean_scripts,
clean_images);
const move_styles = parallel(
vendor_bootstrap_styles,
vendor_rangeslider_styles);
const move_scripts = parallel(
vendor_bootstrap_scripts,
vendor_rangeslider_scripts,
vendor_jquery_scripts,
vendor_html2canvas_scripts);
const move = parallel(move_scripts, move_styles);
const build = series(clean, move, build_styles, build_scripts, server_replace);
const build_watch = series(build, watch_files);

exports.default = build_watch;
exports.build = build;
exports.watch = watch_files;
const move_scripts = parallel(
vendor_canvas2blob_scripts,
vendor_filesaver_scripts,
vendor_bootstrap_scripts,
vendor_rangeslider_scripts,
vendor_jquery_scripts,
vendor_html2canvas_scripts);
const move = parallel(move_scripts, move_styles);
const build = series(clean, move, build_styles, build_scripts, build_images, server_replace);
const build_watch = series(build, watch_files);

exports.default = build_watch;
exports.build = build;
exports.watch = watch_files;
Loading

0 comments on commit 7ae601f

Please sign in to comment.