├── .editorconfig
├── .gitignore
├── Gruntfile.js
├── LICENSE
├── README.md
├── generator.sublime-project
├── package.json
└── src
├── docs
├── how-to
│ ├── how-to-de.js
│ ├── how-to-en.js
│ ├── how-to-es.js
│ ├── how-to-fr.js
│ └── how-to-it.js
├── raw-data
│ ├── raw-data-de.js
│ ├── raw-data-en.js
│ ├── raw-data-es.js
│ ├── raw-data-fr.js
│ └── raw-data-it.js
└── save-state
│ ├── save-state-de.js
│ ├── save-state-en.js
│ ├── save-state-es.js
│ ├── save-state-fr.js
│ └── save-state-it.js
├── fonts
├── LICENSES
├── fontawesome-webfont-subset.eot
├── fontawesome-webfont-subset.otf
├── fontawesome-webfont-subset.svg
├── fontawesome-webfont-subset.ttf
├── fontawesome-webfont-subset.woff
├── fontawesome-webfont-subset.woff2
├── opensans-bold.eot
├── opensans-bold.otf
├── opensans-bold.svg
├── opensans-bold.ttf
├── opensans-bold.woff
├── opensans-bold.woff2
├── opensans-regular.eot
├── opensans-regular.otf
├── opensans-regular.svg
├── opensans-regular.ttf
├── opensans-regular.woff
└── opensans-regular.woff2
├── js
├── bootstrap-datepicker.js
├── bootstrap3-typeahead.js
├── generator.js
├── multiline.js
├── parse-data.js
└── table-dnd.js
├── lang
├── de.txt
├── en.txt
├── es.txt
├── fr.txt
└── it.txt
├── libs
├── bootstrap.min.js
└── jquery.min.js
├── sass
├── generator.scss
└── partials
│ ├── _bootstrap.scss
│ ├── _datepicker.scss
│ └── _invoice.print.scss
└── template
├── data.js
├── data.txt
├── mobile.scss
├── print.css
├── template.html
├── template.scss
└── themes
├── _alice.scss
├── _cananista.scss
├── _elegance.scss
├── _modesta.scss
├── _morelo.scss
└── _onyx.scss
/.editorconfig:
--------------------------------------------------------------------------------
1 | # EditorConfig is awesome: http://EditorConfig.org
2 |
3 | # Howto with your editor:
4 | # Sublime: https://github.com/sindresorhus/editorconfig-sublime
5 |
6 | # top-most EditorConfig file
7 | root = true
8 |
9 | # Windows-style newlines with a newline ending every file
10 | [**]
11 | end_of_line = crlf
12 | insert_final_newline = true
13 |
14 | # Standard at: https://github.com/felixge/node-style-guide
15 | [**.js, **.json]
16 | trim_trailing_whitespace = true
17 | indent_style = space
18 | indent_size = 2
19 | max_line_length = 80
20 | quote_type = single
21 | curly_bracket_next_line = false
22 | spaces_around_operators = true
23 | space_after_control_statements = true
24 | space_after_anonymous_functions = false
25 | spaces_in_brackets = false
26 |
27 | # https://github.com/jedmao/codepainter
28 | [node_modules/**.js]
29 | codepaint = false
30 |
31 | # No Standard. Please document a standard if different from .js
32 | [**.yml, **.html, **.css]
33 | trim_trailing_whitespace = true
34 | indent_style = space
35 | indent_size = 2
36 |
37 | # No standard. Please document a standard if different from .js
38 | [**.md]
39 | indent_style = space
40 |
41 | # Standard at:
42 | [**.py]
43 | indent_style = space
44 | indent_size = 4
45 |
46 | # Standard at:
47 | [Makefile]
48 | indent_style = tab
49 | indent_size = 8
50 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .sass-cache
3 |
4 | dist
5 | rackspace-cloudfiles.json
6 | package-lock.json
7 | promo*.html
8 |
9 | *.sublime-workspace
10 |
--------------------------------------------------------------------------------
/Gruntfile.js:
--------------------------------------------------------------------------------
1 | module.exports = function(grunt) {
2 |
3 | // Time how long tasks take, can help when optimizing build times
4 | require('time-grunt')(grunt);
5 |
6 | // If rackspace-cloudfiles.json file don't exist create one
7 | if(!grunt.file.exists('./rackspace-cloudfiles.json'))
8 | grunt.file.write('./rackspace-cloudfiles.json', '{}');
9 |
10 | // If promo.html file don't exist create one
11 | if(!grunt.file.exists('./promo.html'))
12 | grunt.file.write('./promo.html', '');
13 |
14 |
15 | // Project configuration.
16 | grunt.initConfig({
17 |
18 | pkg: grunt.file.readJSON('package.json'),
19 |
20 | jshint: {
21 | options: {
22 | reporter: require('jshint-stylish'), // use jshint-stylish to make our errors look and read good
23 | reporterOutput: ''
24 | },
25 | src: ['Gruntfile.js', '<%= js_src %>']
26 | },
27 |
28 | clean: {
29 | build: {
30 | src: ['dist']
31 | },
32 | fonts: {
33 | src: ['dist/fonts']
34 | }
35 | },
36 |
37 | concat: {
38 | options: {
39 | banner: '<%= banner %>\n'
40 | },
41 | js: {
42 | src: '<%= js_src %>',
43 | dest: '<%= build_dir %><%= build_js %>'
44 | }
45 | },
46 |
47 | uglify: {
48 | options: {
49 | compress: {
50 | drop_console: true
51 | },
52 | banner: '<%= banner %>\n'
53 | },
54 | js: {
55 | files: {
56 | '<%= build_dir %><%= build_js %>': '<%= js_src %>'
57 | }
58 | }
59 | },
60 |
61 | compass: {
62 | options: {
63 | sassDir: '<%= css_src %>',
64 | fontsDir: 'src/fonts',
65 | httpFontsPath: 'fonts',
66 | force: true
67 | },
68 | dev: {
69 | options: {
70 | banner: '<%= banner %>',
71 | specify: '<%= css_src %>/*.scss',
72 | cssDir: '<%= build_dir %>',
73 | environment: 'development'
74 | }
75 | },
76 | prod: {
77 | options: {
78 | banner: '<%= banner %>',
79 | specify: '<%= css_src %>/*.scss',
80 | cssDir: '<%= build_dir %>',
81 | environment: 'production'
82 | }
83 | },
84 | tpl_dev: {
85 | options: {
86 | sassDir: '<%= tpl_dir %>',
87 | cssDir: '<%= build_dir %>',
88 | environment: 'development'
89 | }
90 | },
91 | tpl_prod: {
92 | options: {
93 | sassDir: '<%= tpl_dir %>',
94 | cssDir: '<%= build_dir %>',
95 | environment: 'development', // Don't compress
96 | debugInfo: false,
97 | noLineComments: true
98 | }
99 | }
100 | },
101 |
102 | copy: {
103 | tpl: {
104 | src: ['<%= tpl_dir %>/*.html', '<%= tpl_dir %>/data.*', 'src/libs/*.js'],
105 | dest: '<%= build_dir %>',
106 | expand: true,
107 | flatten: true
108 | },
109 | fonts: {
110 | src: ['src/fonts/*'],
111 | dest: '<%= build_dir %>/fonts',
112 | expand: true,
113 | flatten: true
114 | },
115 | lang: {
116 | src: ['<%= lang_dir %>/*'],
117 | dest: '<%= build_dir %>/lang',
118 | expand: true,
119 | flatten: true
120 | },
121 | docs: {
122 | src: ['**/*'],
123 | dest: '<%= build_dir %>/docs',
124 | cwd: 'src/docs/',
125 | expand: true
126 | },
127 | print_css: {
128 | src: ['<%= tpl_dir %>/print.css'],
129 | dest: '<%= build_dir %>',
130 | expand: true,
131 | flatten: true
132 | }
133 | },
134 |
135 | replace: {
136 | dev: {
137 | options: {
138 | patterns: [
139 | {
140 | match: 'TRACKING',
141 | replacement: '<%= tracking %>'
142 | },
143 | {
144 | match: 'MIN',
145 | replacement: ''
146 | },
147 | {
148 | match: 'SAVE_URL',
149 | replacement: '<%= save_url %>'
150 | },
151 | {
152 | match: 'GENERATOR',
153 | replacement: '<%= build_js %>'
154 | },
155 | {
156 | match: 'SCRIPT',
157 | replacement: '\n'
158 | },
159 | {
160 | match: 'TPL_NOTE',
161 | replacement: '<%= tpl_note %>'
162 | },
163 | {
164 | match: 'PROMO',
165 | replacement: '<%= promo %>'
166 | }
167 | ]
168 | },
169 | files: [
170 | {
171 | expand: true,
172 | flatten: true,
173 | src: ['<%= build_dir %><%= build_js %>', '<%= build_dir %>*.html'],
174 | dest: '<%= build_dir %>'
175 | }
176 | ]
177 | },
178 | pubdev: {
179 | options: {
180 | patterns: [
181 | {
182 | match: 'TRACKING',
183 | replacement: '<%= tracking %>'
184 | },
185 | {
186 | match: 'MIN',
187 | replacement: ''
188 | },
189 | {
190 | match: 'SAVE_URL',
191 | replacement: '<%= save_url %>'
192 | },
193 | {
194 | match: 'GENERATOR',
195 | replacement: '<%= build_js %>'
196 | },
197 | {
198 | match: 'SCRIPT',
199 | replacement: ''
200 | },
201 | {
202 | match: 'TPL_NOTE',
203 | replacement: '<%= tpl_note %>'
204 | },
205 | {
206 | match: 'PROMO',
207 | replacement: '<%= promo %>'
208 | }
209 | ]
210 | },
211 | files: [
212 | {
213 | expand: true,
214 | flatten: true,
215 | src: ['<%= build_dir %>*.js', '<%= build_dir %>*.html'],
216 | dest: '<%= build_dir %>'
217 | }
218 | ]
219 | },
220 | prod: {
221 | options: {
222 | patterns: [
223 | {
224 | match: 'TRACKING',
225 | replacement: '<%= tracking %>'
226 | },
227 | {
228 | match: 'MIN',
229 | replacement: '.min'
230 | },
231 | {
232 | match: 'SAVE_URL',
233 | replacement: '<%= save_url %>'
234 | },
235 | {
236 | match: 'GENERATOR',
237 | replacement: '<%= build_js.replace(".js", ".min.js") %>'
238 | },
239 | {
240 | match: 'SCRIPT',
241 | replacement: ''
242 | },
243 | {
244 | match: 'TPL_NOTE',
245 | replacement: '<%= tpl_note %>'
246 | },
247 | {
248 | match: 'PROMO',
249 | replacement: '<%= promo %>'
250 | }
251 | ]
252 | },
253 | files: [
254 | {
255 | expand: true,
256 | flatten: true,
257 | src: ['<%= build_dir %><%= build_js %>', '<%= build_dir %>*.html'],
258 | dest: '<%= build_dir %>'
259 | }
260 | ]
261 | },
262 | pubprod: {
263 | options: {
264 | patterns: [
265 | {
266 | match: 'TRACKING',
267 | replacement: '<%= tracking %>'
268 | },
269 | {
270 | match: 'MIN',
271 | replacement: '.min'
272 | },
273 | {
274 | match: 'SAVE_URL',
275 | replacement: '<%= save_url %>'
276 | },
277 | {
278 | match: 'GENERATOR',
279 | replacement: '<%= build_js.replace(".js", ".min.js") %>'
280 | },
281 | {
282 | match: 'SCRIPT',
283 | replacement: ''
284 | },
285 | {
286 | match: 'TPL_NOTE',
287 | replacement: '<%= tpl_note %>'
288 | },
289 | {
290 | match: 'PROMO',
291 | replacement: '<%= promo %>'
292 | }
293 | ]
294 | },
295 | files: [
296 | {
297 | expand: true,
298 | flatten: true,
299 | src: ['<%= build_dir %>*.js', '<%= build_dir %>*.html'],
300 | dest: '<%= build_dir %>'
301 | }
302 | ]
303 | },
304 | tpl: {
305 | options: {
306 | patterns: [
307 | {
308 | match: 'TPL_NOTE',
309 | replacement: '<%= tpl_note %>'
310 | },
311 | {
312 | match: 'SCRIPT',
313 | replacement: ''
314 | }
315 | ]
316 | },
317 | files: [
318 | {
319 | expand: true,
320 | flatten: true,
321 | src: ['<%= build_dir %>*.html'],
322 | dest: '<%= build_dir %>'
323 | }
324 | ]
325 | }
326 | },
327 |
328 | rename: {
329 | prod: {
330 | files: [
331 | {
332 | src: ['<%= build_dir %><%= build_js %>'],
333 | dest: '<%= build_dir %><%= build_js.replace(".js", ".min.js") %>'
334 | },
335 | {
336 | src: ['<%= build_dir %><%= build_css %>'],
337 | dest: '<%= build_dir %><%= build_css.replace(".css", ".min.css") %>'
338 | }
339 | ]
340 | }
341 | },
342 |
343 | compress: {
344 | tpl: {
345 | options: {
346 | level: 9,
347 | archive: '<%= build_dir %>template.zip'
348 | },
349 | files: [
350 | {
351 | src: ['template.html', 'template.css', 'data.txt'],
352 | cwd: '<%= build_dir %>',
353 | filter: 'isFile',
354 | expand: true
355 | }
356 | ]
357 | },
358 | gen: {
359 | options: {
360 | level: 9,
361 | archive: '<%= build_dir %>generator.zip'
362 | },
363 | files: [
364 | {
365 | src: ['bootstrap.*', 'generator.*', 'jquery.*', '{fonts,lang,docs}/**/*'],
366 | cwd: '<%= build_dir %>',
367 | filter: 'isFile',
368 | expand: true
369 | }
370 | ]
371 | }
372 | },
373 |
374 | // Used for uploading final version on CloudFiles CDN
375 | cloudfiles: {
376 | // In rackspace-cloudfiles.json add JSON object as described at https://github.com/rtgibbons/grunt-cloudfiles
377 | publish: grunt.file.readJSON('rackspace-cloudfiles.json')
378 | },
379 |
380 | watch: {
381 | gruntfile: {
382 | files: 'Gruntfile.js',
383 | tasks: ['dev']
384 | },
385 | js: {
386 | files: ['<%= js_src %>'],
387 | tasks: ['jshint', 'concat:js', 'replace:dev']
388 | },
389 | css: {
390 | files: '<%= css_src %>/**/*',
391 | tasks: ['compass:dev']
392 | },
393 | tpl_html: {
394 | files: '<%= tpl_dir %>/*.html',
395 | tasks: ['copy:tpl', 'replace:dev']
396 | },
397 | tpl_data: {
398 | files: '<%= tpl_dir %>/data.*',
399 | tasks: ['copy:tpl', 'replace:dev']
400 | },
401 | tpl_css: {
402 | files: '<%= tpl_dir %>/*.scss',
403 | tasks: ['compass:tpl_dev']
404 | },
405 | lang: {
406 | files: '<%= lang_dir %>/*',
407 | tasks: ['copy:lang']
408 | },
409 | docs: {
410 | files: '<%= docs_dir %>/**/*',
411 | tasks: ['copy:docs']
412 | },
413 | livereload: {
414 | options: {
415 | livereload: true
416 | },
417 | files: ['src/**/*', 'docs/*'],
418 | }
419 | },
420 |
421 | banner: '/*! <%= pkg.description %> @author: <%= pkg.author.name %> @email: <%= pkg.author.email %> @web: <%= pkg.author.web %> @version: <%= pkg.version %> @updated: <%= grunt.template.today("yyyy-mm-dd HH:mm:ss") %> @license: <%= pkg.license %> */',
422 | tpl_note: '',
423 | promo: grunt.file.read('promo.html').replace(/'/g, "\\'").replace(/"/g, "\\\"").replace(/\r\n|\r|\n/g, '[crlf]'),
424 |
425 | js_src: ['src/js/<%= build_js %>', 'src/js/table-dnd.js', 'src/js/bootstrap-datepicker.js', 'src/js/bootstrap3-typeahead.js', 'src/js/multiline.js', 'src/js/parse-data.js'],
426 | css_src: 'src/sass',
427 |
428 | lang_dir: 'src/lang',
429 | docs_dir: 'src/docs',
430 |
431 | build_js: 'generator.js',
432 | build_css: 'generator.css',
433 |
434 | build_dir: 'dist/',
435 |
436 | tpl_dir: 'src/template',
437 |
438 | cdn_path: 'http://cdn.invoicebus.com/generator/',
439 | tracking: '?utm_source=generator&utm_medium=template&utm_campaign=invoicebus_templates',
440 | save_url: 'https://invoicebus.com/saveinvoice/'
441 |
442 | });
443 |
444 | // Load the plugins that provides the tasks.
445 | require('load-grunt-tasks')(grunt);
446 |
447 |
448 | // Dev build task.
449 | grunt.registerTask('dev', ['clean', 'jshint', 'concat:js', 'compass:dev', 'compass:tpl_dev', 'copy:tpl', 'replace:dev', 'copy:fonts', 'copy:lang', 'copy:docs']);
450 |
451 | // Prod build task.
452 | grunt.registerTask('prod', ['clean', 'jshint', 'uglify:js', 'compass:prod', 'compass:tpl_prod', 'copy:tpl', 'replace:prod', 'rename:prod', 'copy:fonts', 'copy:lang', 'copy:docs']);
453 |
454 |
455 | // Publish to CloudFiles CDN
456 | grunt.registerTask('pub', [
457 | 'clean',
458 |
459 | 'copy:fonts',
460 |
461 | 'jshint',
462 |
463 | 'copy:lang',
464 | 'copy:docs',
465 |
466 | 'uglify:js',
467 | 'compass:prod',
468 | 'compass:tpl_prod',
469 | 'copy:tpl',
470 | 'replace:prod',
471 | 'rename:prod',
472 |
473 | 'compress:gen',
474 |
475 | 'uglify:js',
476 | 'compass:prod',
477 | 'compass:tpl_prod',
478 | 'copy:tpl',
479 | 'replace:pubprod',
480 | 'rename:prod',
481 |
482 | 'compress:tpl',
483 |
484 | 'concat:js',
485 | 'compass:dev',
486 | 'replace:pubdev',
487 |
488 | 'copy:print_css',
489 |
490 | /*
491 | Fonts shouldn't be uploaded everytime,
492 | so if there are changes upload them manually and
493 | set header 'Access-Control-Allow-Origin': * to all font files
494 | and proper 'Content-Type' headers:
495 |
496 | .eot - application/vnd.ms-fontobject
497 | .otf - application/font-sfnt
498 | .svg - image/svg+xml
499 | .ttf - application/font-sfnt
500 | .woff - application/font-woff
501 | .woff2 - application/font-woff2
502 | */
503 |
504 | 'clean:fonts',
505 |
506 | 'cloudfiles:publish'
507 | ]);
508 |
509 |
510 | // Default task(s).
511 | grunt.registerTask('default', ['dev', 'watch']);
512 |
513 | };
514 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Invoicebus
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # HTML Invoice Generator
2 |
3 | This Invoice Generator will easily transform your HTML invoice template in fully functional invoice editor. To create your own invoice template and use it with this generator see the [Create your own invoice template](#create-your-own-invoice-template) section.
4 |
5 | ## Demo
6 |
7 | To see the Invoice Generator in action check out working version of a [sample invoice](http://cdn.invoicebus.com/templates/Vip%20(tertia)/template.html).
8 |
9 | ## Setup
10 |
11 | Because we use [Sass](http://sass-lang.com/) and [Compass](http://compass-style.org/) for the styles, we'll need to make sure we have [Ruby](https://www.ruby-lang.org/en/) installed on our system. Make sure the `ruby` command is available in your command line terminal.
12 |
13 | After the Ruby setup, install Sass with:
14 | `gem install sass`
15 |
16 | And Compass with:
17 | `gem install compass`
18 |
19 | To make changes to the generator you'll need Node.js with npm so make sure it is installed on your machine. After this install grunt command line tool globally with:
20 | `npm install -g grunt-cli`
21 |
22 | And from the project's root install the dependencies with:
23 | `npm install`
24 |
25 | ### Development
26 | For easier development you can watch all files for changes and use auto livereload with the default task `grunt`.
27 |
28 | ### Build
29 |
30 | To build the generator just run `grunt dev` or `grunt prod` on the command line. Those will produce fully functional template and generator files in the `dist` folder. The production version will produce minimized JavaScript and CSS files unlike the development version which is meant for easier debugging.
31 |
32 | ## Supported browsers
33 |
34 | The generator script is tested and confirmed that is fully functional in:
35 |
36 | * Chrome
37 | * Firefox
38 | * Safari 6+
39 | * Opera 15+
40 | * Internet Explorer 10+
41 |
42 | ## Create your own invoice template
43 |
44 | The major rule we have for this is **never start from scratch** so we encourage you to download the default Invoicebus [template](http://cdn.invoicebus.com/generator/template.zip) and use it as starting point for creating your custom invoice template. Refer to our [official guide](https://invoicebus.com/create-html-invoice-template/) on how to further customize your template.
45 |
46 | ## Issues and feedback
47 |
48 | If you found bugs please submit them [here](https://github.com/Invoicebus/html-invoice-generator/issues). For general questions and feedback use our [support forum](https://groups.google.com/d/forum/html-invoice-generator).
49 |
50 | ## License
51 |
52 | The Invoice Generator is under [MIT](https://github.com/Invoicebus/html-invoice-generator/blob/master/LICENSE) license.
53 |
--------------------------------------------------------------------------------
/generator.sublime-project:
--------------------------------------------------------------------------------
1 | {
2 | "folders":
3 | [
4 | {
5 | "follow_symlinks": true,
6 | "path": ".",
7 | "folder_exclude_patterns": ["node_modules", ".sass-cache", ".git"]
8 | }
9 | ]
10 | }
11 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "invoice-generator",
3 | "version": "1.0.0",
4 | "description": "Invoice Template Generator",
5 | "private": true,
6 | "keywords": [
7 | "invoice",
8 | "invoicing"
9 | ],
10 | "author": {
11 | "name": "Invoicebus",
12 | "email": "info@invoicebus.com",
13 | "web": "https://invoicebus.com"
14 | },
15 | "license": "MIT",
16 | "devDependencies": {
17 | "grunt": "^0.4.5",
18 | "grunt-cloudfiles": "^0.3.0",
19 | "grunt-contrib-clean": "^0.6.0",
20 | "grunt-contrib-compass": "^1.0.1",
21 | "grunt-contrib-compress": "^0.12.0",
22 | "grunt-contrib-concat": "^0.5.0",
23 | "grunt-contrib-copy": "^0.5.0",
24 | "grunt-contrib-jshint": "^0.10.0",
25 | "grunt-contrib-rename": "0.0.3",
26 | "grunt-contrib-uglify": "^0.5.1",
27 | "grunt-contrib-watch": "^0.6.1",
28 | "grunt-replace": "^0.8.0",
29 | "jshint-stylish": "^0.4.0",
30 | "load-grunt-tasks": "^0.6.0",
31 | "time-grunt": "^1.0.0"
32 | },
33 | "engines": {
34 | "node": ">=0.10.0"
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/docs/how-to/how-to-de.js:
--------------------------------------------------------------------------------
1 | var ib_how_to_data = function(){/*
2 |
3 |
4 | Wenn sie ein mann performer und alles, was sie für ihr unternehmen tun tun sie es selbst – willkommen im club! Sie sind gut mit dem schmerz des schreibens rechnungen vertraut. Word? Excel? Komplizierte abrechnungssoftware? Vergessen sie es und hallo sie neue freude!
5 |
6 |
7 | Was kann ich mit dieser vorlage zu tun?
8 |
9 |
10 |
11 | ● Schreiben sie professionell aussehende rechnungen in einer angelegenheit von sekunden.
12 |
13 |
14 | ○ Verwenden sie eine sprache oder währung.
15 |
16 |
17 | ○ Fügen sie ihr eigenes logo mit einfachen drag-und-drop.
18 |
19 |
20 | ○ Einfaches hinzufügen, entfernen und positionszeilen neu anordnen.
21 |
22 |
23 | ○ In steuern und rabatten.
24 |
25 |
26 | ○ Artikel konfigurieren spalte sichtbarkeit.
27 |
28 |
29 | ○ Auto berechnen zwischensummen, summen, steuern und rabatte.
30 |
31 |
32 | ○ Speichern sie ihre standard-unternehmensdaten für die zukünftige nutzung.
33 |
34 |
35 |
36 |
37 | ● Restyle es mit einfachen HTML und CSS techniken.
38 |
39 |
40 | ● Drucken sie es direkt aus.
41 |
42 |
43 | ● Speichern sie es auf PDF oder online speichern.
44 |
45 |
46 |
47 |
48 | Wie kann ich meine standard-unternehmensdaten für eine zukunfts verwendung speichern?
49 |
50 | Klicken sie auf "Sicherer Staat" und folgen sie den anweisungen auf dem bildschirm.
51 |
52 |
53 | Wie die rechnung speichern?
54 |
55 | Es gibt zwei möglichkeiten, um die rechnung zu sparen:
56 |
57 |
58 | - Speichern sie es mit PDF-drucker in PDF.
59 |
60 |
61 | - Sparen sie online in unserem Online-Abrechnungssystem Invoicebus.
62 |
63 |
64 |
65 |
66 |
67 | Speichern der rechnung zu PDF können mit etwas namens PDF-druckertreiber erfolgen. Dies wird auch als das drucken auf PDF bekannt, weil die ausgabe von dem browser zu einer datei an einen drucker gesendet wird, statt. Diese funktionalität ist in einigen browsern eingebaut (wie Google Chrome), während in anderen (wie Firefox oder Internet Explorer) sie müssen manuell PDF-drucker zu installieren. Eine gute und kostenlose PDF-drucker ist Bullzip. Wenn sie bereits ihre PDF-drucker installiert haben klicken sie auf "Drucken", gesetzt der zieldrucker auf "Als PDF Speichern" und klicken sie auf Speichern.
68 |
69 |
70 |
71 | Um die rechnung zu sparen online müssen sie zunächst ein Invoicebus konto zu erstellen. Sie können dies tun, indem Sie auf "Speichern Online" taste. Dann werden sie auf eine sichere seite, auf der sie ihre registrierung abschließen können und die rechnung speichern. Bitte beachten sie, dass eine online-rechnung ist viel mächtiger als eine statische PDF-rechnung. Zum beispiel kann ein online-rechnung on-the-fly bearbeitet werden, per e-mail gesendet, verfolgt und direkt per Kreditkarte, PayPal oder Bitcoin bezahlt. Hier ist ein beispiel.
72 |
73 |
74 | Wie die vorlage restyle?
75 |
76 | Die vorlage wird mit einfachheit im verstand gemacht, so kann leicht mit ihrem eigenen branding und farben angepasst werden. Jedoch wird grundwissen in HTML und CSS erforderlich.
77 |
78 |
79 |
80 | Für kleinere änderungen (wie das ändern sie farben, schriftarten oder elementgrößen) müssen sie nur die template.css datei zu ändern. Wenn sie größere strukturelle veränderungen des layouts machen wollen (löschen oder elemente neu anordnen), müssen sie die template.html datei zu ändern. Wir haben einen führen mit bewährte methoden, wie sie ihre eigene vorlage zu erstellen, so frei zu verwenden es als bezugspunkt zu fühlen.
81 |
82 |
83 |
84 | Hinweis: Die vorlage ist völlig unabhängig von seiner logik, so dass sie mess up mit jeder programmierung oder JavaScript-code nicht brauchen.
85 |
86 |
87 | Muss ich mit dem Internet verbunden werden müssen, es zu benutzen?
88 |
89 | Ja, aber ist nicht erforderlich. Im hintergrund die vorlage links remote-JavaScript-datei (generator.min.js) auf unserem server, von dem zieht es die ganze logik. Wenn sie aus irgendeinem grund keinen zugang zum internet auf ihrem computer haben, können sie herunterladen das skript lokal, und die template.html datei auf die lokale version des skripts zu punkt.
90 |
91 |
92 |
93 | Wir empfehlen ihnen, im allgemeinen mit dem remote-skript fortgesetzt werden, da alle aktuellen updates sofort in die vorlage reflektieren sie verwenden.
94 |
95 |
96 | Was ist mit den verwendeten schriften?
97 |
98 | Die vorlage benutzt Google Fonts, wie sie frei und für jedermann zugänglich sind. Wenn sie die vorlage offline verwenden möchten (ohne mit dem internet verbunden ist) sie herunterladen und die schriften auf ihrem lokalen computer installieren (SkyFonts ist ein einfaches werkzeug, das ihnen diese) leicht tun können.
99 |
100 |
101 |
102 | Kann ich die JavaScript-quellcode verwenden
103 |
104 | Absolut! In der tat würden wir uns stolz, wenn sie sich entscheiden, es zu benutzen (gabel uns auf GitHub). Ob sie es verwenden in kommerziellen oder nichtkommerziellen projekt wählen, können sie uns einen ruf zu geben, wie wir bestrebt sind, alle möglichkeiten zu hören, wie dieses werkzeug verwendet werden kann. Manchmal können wir ihnen sogar eine hand ;)
105 |
106 |
107 | Unterstützen sie unsere arbeit
108 |
109 | Dieses skript pflege braucht viel zeit und mühe es fehlerfrei zu halten und auf dem neuesten stand. Alles, was wir bitten, ist ein wenig gefallen – diskrete feinen druck unserer rechnungsdienst am unteren rand des gedruckten dokuments. Es würde uns die welt bedeuten, wenn sie es dort lassen. Vielen dank!
110 |
111 |
112 |
113 | Es ist in ordnung, auch wenn sie uns kredit zu vermeiden, entscheiden zu geben, so haben wir diese wahl für sie einfacher. Im data.txt datei, die wir eingeschlossen eigenschaft namens invoicebus_fineprint die eingestellt werden können, um true (das kleingedruckte zu zeigen) oder false (das kleingedruckte zu verstecken).
114 |
115 |
116 | Fehler gefunden?
117 |
118 | Wenn sie ein problem auftritt oder einen bug gefunden, melden sie dies bitte bei unserer GitHub repo. Bitte senden sie keine allgemeine fragen hier, anstatt das support-forum (siehe unten).
119 |
120 |
121 | Anregungen, fragen, kritik?
122 |
123 | Gibt es etwas, was wir tun können diese vorlage zu verbessern und machen es besser für sie? Gute dinge / schlechte dinge? Fühlen sie sich frei auf das entsprechende thema in unserem support-forum und treffen uns auf – wir jeden Beitrag lesen und beantworten.
124 |
125 |
126 | */}
127 |
--------------------------------------------------------------------------------
/src/docs/how-to/how-to-en.js:
--------------------------------------------------------------------------------
1 | var ib_how_to_data = function(){/*
2 |
3 |
4 | If you're one-man performer and everything you do for your business you do it by yourself – welcome to the club! You're well familiar with the pain of writing invoices. Word? Excel? Complicated accounting software? Forget about it and hello you new joy!
5 |
6 |
7 | What can I do with this template?
8 |
9 |
10 |
11 | ● Write professional looking invoices in a matter of seconds.
12 |
13 |
14 | ○ Use any language or currency.
15 |
16 |
17 | ○ Add your own logo with simple drag and drop.
18 |
19 |
20 | ○ Easily add, remove, and reorder item rows.
21 |
22 |
23 | ○ Add taxes and discounts.
24 |
25 |
26 | ○ Configure item column visibility.
27 |
28 |
29 | ○ Auto calculate subtotals, totals, taxes and discounts.
30 |
31 |
32 | ○ Save the current invoice data for future re-use.
33 |
34 |
35 | ○ Open already saved invoice data (useful when invoicing different clients).
36 |
37 |
38 |
39 |
40 | ● Restyle it by using simple HTML & CSS techniques.
41 |
42 |
43 | ● Directly print it out.
44 |
45 |
46 | ● Save it to PDF or save it online.
47 |
48 |
49 |
50 |
51 | How to save the invoice?
52 |
53 | There are three ways to save the invoice:
54 |
55 |
56 | 1) Save it locally in editable .txt format with the "Save State" button.
57 |
58 |
59 | 2) Save it to PDF using PDF printer.
60 |
61 |
62 | 3) Save it online to our online invoicing system Invoicebus.
63 |
64 |
65 |
66 |
67 |
68 | 1) To save the invoice data locally in editable format use the "Save State" button in the top menu and follow the on-screen instructions.
69 |
70 |
71 |
72 | 2) Saving the invoice to PDF can be done by using something called PDF Print Driver. This is also known as printing to PDF because the output from the browser is sent to a file instead to a printer. This functionality is built-in in some browsers (like Google Chrome), while in others (like Firefox or Internet Explorer) you have to install PDF printer manually. A good and free PDF printer is Bullzip. If you already have your PDF printer installed, click "Print", set the destination printer to "Save as PDF" and click Save.
73 |
74 |
75 |
76 | 3) In order to save the invoice online you'll need to create an Invoicebus account first. You can do this by clicking "Save Online" button. Then you'll be taken to a secure page where you can complete your registration and save the invoice. Please note that an online invoice is much more powerful than a static PDF invoice. For example, an online invoice can be edited on-the-fly, sent by email, tracked, and paid directly by Credit card, PayPal or Bitcoin. Here's an example.
77 |
78 |
79 | How can I open already saved local invoice data?
80 |
81 | To open local data, click the "Open" button and from the file browser window select the data file you want to open. Note that the file must be previously saved invoice data with .txt extension, otherwise it won't load.
82 |
83 |
84 |
85 | Due to browser privacy restrictions the file must be loaded from the same location as the template.html file (the root directory of the template). So if you want to open data file from other location on your computer, first copy it to the template root folder.
86 |
87 |
88 | How to restyle the template?
89 |
90 | The template is made with simplicity in mind so can be easily customized with your own branding and colors. However, basic knowledge in HTML and CSS is required.
91 |
92 |
93 |
94 | For smaller modifications (like changing colors, fonts or element sizes) you only need to modify the template.css file. If you want to make bigger structural changes of the layout (deleting or rearranging elements), you'll need to modify the template.html file. We've made a guide with best practices on how to create your own template, so feel free to use it as a reference point.
95 |
96 |
97 |
98 | Note: The template is completely separate from its logic, so you don't need to mess up with any programming or JavaScript code.
99 |
100 |
101 | Do I have to be connected to internet to use it?
102 |
103 | Yes, but isn't necessary. In the background the template links to remote JavaScript file (generator.min.js) located on our server from which it pulls all the logic. If for some reason you don't have internet access on your computer, you can download the script locally, and modify the template.html file to point to the local version of the script.
104 |
105 |
106 |
107 | We generally encourage you to continue using the remote script because any recent updates immediately reflect into the template you're using.
108 |
109 |
110 | What about the fonts used?
111 |
112 | The template uses Google Fonts as they are free and open to everyone. If you want to use the template offline (without being connected to internet) you'll have to download and install the fonts on your local computer (SkyFonts is a simple tool that helps you do this easily).
113 |
114 |
115 | Can I use the JavaScript source code?
116 |
117 | Absolutely! In fact, we would be proud if you decide to use it (fork us on GitHub). Whether you choose to use it in commercial or non-commercial project, feel free to give us a shout as we are eager to hear all possibilities how this tool can be used. Sometimes, we may even give you a hand ;)
118 |
119 |
120 | Support our work
121 |
122 | Maintaining this script takes a lot of time and effort to keep it bug free and up to date. All we're asking is a little favor – discrete fine print of our invoicing service at the bottom of the printed document. It would mean the world to us if you leave it there. Thanks!
123 |
124 |
125 |
126 | It's fine even if you decide to avoid giving us credit, so we made this choice easier to you. In the local .txt invoice data file there's a property called invoicebus_fineprint which can be set to true (to show the fine print) or false (to hide the fine print).
127 |
128 |
129 | Found a bug?
130 |
131 | If you encounter any issue or found a bug, please report it at our GitHub repo. Please do not submit general questions here, instead use the support forum (see below).
132 |
133 |
134 | Suggestions, questions, criticism?
135 |
136 | Is there anything we can do to improve this template and make it better for you? Good things / bad things? Feel free to find the appropriate topic at our support forum and hit us up – we read and respond to every post.
137 |
138 |
139 | */}
140 |
--------------------------------------------------------------------------------
/src/docs/how-to/how-to-es.js:
--------------------------------------------------------------------------------
1 | var ib_how_to_data = function(){/*
2 |
3 |
4 | Si tu es one-man performer y todo que haces para tu negocio lo haces solo – bienvenido al club! Conoces bien el aburrimiento de escribir facturas. Word? Excel? Software de contabilidad complicado? Olvida todo y saluda a tu nueva alegría!
5 |
6 |
7 | Que puedo hacer con esta plantilla?
8 |
9 |
10 |
11 | ● Escribe facturas profesionales en cuestión de segundos.
12 |
13 |
14 | ○ Utilice cualquier idioma o moneda.
15 |
16 |
17 | ○ Añade tu logotipo con un simple arrastrar y soltar.
18 |
19 |
20 | ○ Añade, elimina y reordena fácilmente las líneas de las secciónes
21 |
22 |
23 | ○ Añade impuestos y descuentos.
24 |
25 |
26 | ○ Configura la visibilidad de la sección de la columna.
27 |
28 |
29 | ○ Autocalcula subtotales, totales, impuestos y descuentos.
30 |
31 |
32 | ○ Guarda los datos de negocio por estándar para tu uso futuro.
33 |
34 |
35 |
36 |
37 | ● Redisegnala con otro estilo, usando de técnicas de HTML y CSS simples.
38 |
39 |
40 | ● Imprime directamente.
41 |
42 |
43 | ● Guardala en formato PDF o guardala online.
44 |
45 |
46 |
47 |
48 | ¿Cómo puedo guardar mis datos de negocio predefinidos para uso futuro?
49 |
50 | Haz click "Guardar Estado" al botón y sigue las instrucciones de la pantalla.
51 |
52 |
53 | Cómo guardar la factura?
54 |
55 | Hay dos maneras de guardar la factura:
56 |
57 |
58 | - Guardar en PDF usando la impresora PDF.
59 |
60 |
61 | - Guardala online en nuestro sistema de facturación online Invoicebus
62 |
63 |
64 |
65 |
66 |
67 | Guardando la factura en PDF se puede hacer usando algo llamado PDF Print Driver. Esto también se conoce como impresión en PDF ya que el resultado del navegador se envía a un archivo en lugar de una impresora. Esta funcionalidad se crea en algunos navegadores (como Google Chrome) mientras en otros (como Firefox o Internet Explorer)es necesario instalar la impresora de PDF de forma manual. Una impresora de PDF buena y gratis es Bullzip. Si ya has instalado una impresora PDF, click "Impresión", establece el objetivo para la impresión "Guarda en PDF" y haz click guarda.
68 |
69 |
70 |
71 | Para guardar tu factura online, primero debes crear una cuenta Invoicebus. Esto se puede hacer con un simple clic "Guardar Online" botón. Después, serás llevado a una página segura donde puedes completar tu registro y guardar la factura. Por favor, tenga en cuenta que una factura online es mucho más potente que una factura en PDF estático. Por ejemplo, una factura online se puede cambiar on-the-fly, enviada por correo electrónico, rastreada y pagada directamente con Credit card, PayPal o Bitcoin. Aquí es example.
72 |
73 |
74 | Cómo remodelar la plantilla?
75 |
76 | La plantilla está hecha con una simplicidad y se puede personalizar con tu logotipo y colores.Sin embargo, se necesita un conocimiento básico de HTML y CSS.
77 |
78 |
79 |
80 | Para cambios más pequeños (como el cambio de colores, la fuente o el tamaño de los elementos) sólo hay que modificar el archivo template.css. Si deseas hacer grandes cambios estructurales de layout (eliminando o traferendo elementi), tendrás que modificar el archivo template.html. Hemos creado guide con las mejores prácticas de cómo crear tu propia plantilla, así que no dude en utilizarla como un punto de referencia.
81 |
82 |
83 |
84 | Note: La plantilla es totalmente diferente de la lógica, por eso no se debe mezclar con cualquier programa o código JavaScript.
85 |
86 |
87 | Tengo que estar conectado a Internet para utilizarla?
88 |
89 | Sí, pero no es necesario. En el fondo la plantilla se conecta a un archivo JavaScript (generator.min.js) colocado en nuestro servidor que tira toda la lógica. Si por alguna razón no tienes conexión a Internet para su computadora, puedes descargar el script localmente, y modificar template.html el archivo para apuntar a la versión local del script.
90 |
91 |
92 |
93 | Por lo general, te animamos a seguir utilizando el scrip viejo, ya que cualquier actualización si refleja inmediatamente.
94 |
95 |
96 | Qué ocurre con los caracteres utilizados?
97 |
98 | La plantilla utiliza Fuentes de Google, ya que son gratuitas y abiertas a todos. Si quieres utilizar la plantilla offline (sin estar conectado a Internet) debes descargar y instalar las fuentes en tu ordenador (SkyFonts es una herramienta sencilla y te ayuda a hacer esto facilmente).
99 |
100 |
101 | Puedo utilizar el código JavaScript?
102 |
103 | ¡Por supuesto! De hecho, vamos a estar orgullosos de ti por hacerlo (tenedor nos en GitHub). A pesar decides de utlizarlo en proyectos comerciales o no comerciales, no dudes en decirnos porque queremos saber todas las posibilidades como esta harramienta puede ser utilizada. A veces, te podemos ayudar ;)
104 |
105 |
106 | Apoya el nuestro trabajo
107 |
108 | Mantener este script requiere mucho tiempo y esfuerzo para salvarlo libre y actualizado.Todo lo que buscamos es una pequeña ayuda – escribir las cláusulas en la parte baja de nuestro servicio de facturación al final del documento. Esto significará un mundo para nosotros si las dejas allí. Gracias!
109 |
110 |
111 |
112 | No hay problema si no quieres darnos crédito y por eso hemos hecho esto aún más fácil para ti. En el archivo data.txt hemos incluido propiedad llamada invoicebus_fineprint que se puede ajustar en true (para mostrar las clausulas) o false (para nasconder las clausulas).
113 |
114 |
115 | Has encontrado un eror?
116 |
117 | Si te encuentras con algun problema o error, por favor denucialo a GitHub repo. Por favor, no haces preguntas generales aquí, utiliza el nuestro foro de soporte (véase más abajo).
118 |
119 |
120 | Sugerencias, preguntas, críticas?
121 |
122 | Hay algo para hacer esta plantilla más bella y mejor para ti? Cosas buenas / cosas malas? Siéntase libre para encontrar el título apropiado en el nuestro foro de soporte y golpearnos – Leemos y respondemos a todos los envíos.
123 |
124 |
125 | */}
126 |
--------------------------------------------------------------------------------
/src/docs/how-to/how-to-fr.js:
--------------------------------------------------------------------------------
1 | var ib_how_to_data = function(){/*
2 |
3 |
4 | Si vous êtes quelqu'un qui travaille individuellement et tout ce que vous faites pour votre business vous le faites seul – bienvenu au club! Vous connaissez bien la peine d'écrire des factures. Word? Excel? Des logiciels de comptabilité compliqués? Oubliez tout ça et saluez votre nouvelle joie!
5 |
6 |
7 | Qu'est-ce que je peux faire avec ce template?
8 |
9 |
10 |
11 | ● Ecrire des factures qui ont l'air professionnel dans des secondes.
12 |
13 |
14 | ○ Utiliser n'importe quelle langue ou monnaie.
15 |
16 |
17 | ○ Ajouter votre propre logo avec une simple action de tirer et laisser tomber.
18 |
19 |
20 | ○ Facilement ajouter, supprimer et réorganiser des lignes d'articles.
21 |
22 |
23 | ○ Ajouter des taxes et des réductions.
24 |
25 |
26 | ○ Configurer une visibilité de la colonne d'articles.
27 |
28 |
29 | ○ Auto-calculer des totals partiels,des totals,des taxes et des réductions.
30 |
31 |
32 | ○ Enregistre vos données d'entreprise de défaut pour un futur réemploi.
33 |
34 |
35 |
36 |
37 | ● Donner un nouveau style en utilisant simplement des techniques HTML et CSS.
38 |
39 |
40 | ● Impression directe.
41 |
42 |
43 | ● Enregistrer sous un format PDF ou enregistrer en ligne.
44 |
45 |
46 |
47 |
48 | Comment est-ce que je peux enregistrer mes données d'entreprise de défaut pour un futur réemploi?
49 |
50 | Click "Enregistrer L'état" touche et suit les instructions sur l'écran.
51 |
52 |
53 | Comment sauvegarder la facture?
54 |
55 | Il y a deux façons de sauvegarder la facture:
56 |
57 |
58 | - Enregistre sous PDF en utilisant une imprimante PDF.
59 |
60 |
61 | - Enregistrer en ligne en utilisant notre système de facturation Invoicebus.
62 |
63 |
64 |
65 |
66 |
67 | L'enregistrement de la facture sous PDF peut être fait en utilisant quelque chose qui s'appelle PDF Print Driver. C'est le même comme imprimer sous PDF parce que la sortie du navigateur est envoyée à un document au lieu à une imprimante.Cette fonctionnalité est intégré dans quelques navigateurs (comme Google Chrome), tandis que dans d'autres (comme Firefox ou Internet Explorer)vous devez installer une imprimante PDF manuellement.Une bonne et gratuite imprimante PDF est Bullzip. Si vous avez déjà installé votre imprimante PDF, click "Imprimer", réglez la destination imprimante vers "Enregistrer au PDF" et cliquez Enrégistrez.
68 |
69 |
70 |
71 | Pour sauvegarder la facture en ligne vous devrez d'abord créer un compte Invoicebus.Vous pouvez faire cela en cliquant"Enregistrer en Ligne" touche. Après vous serez réorienté vers une page sécurisée ou vous pouvez compléter votre enregistrement et sauvegarder la facture.Retenez s'il vous plaît qu'une facture en ligne et beaucoup plus puissante qu'une facture PDF statique. Par exemple, une facture en ligne peut être éditée en volant, envoyées par courriel, suivies,et payée directement avec une carte crédit, PayPal ou Bitcoin. Voilà example.
72 |
73 |
74 | Comment donner un autre style au template?
75 |
76 | Le template est fait avec une simplicité pour qu'il puisse être facilement personnalisé avec vos propres marques et couleurs. Quand même, une connaissance basique de in HTML et CSS est requise.
77 |
78 |
79 |
80 | Pour de petites modifications (comme un changement de couleurs,de fontes ou de la taille des éléments ) vous devez seulement modifier le document template.css .Si vous voulez faire de plus grand changements structurels de la mise en page (en supprimant ou en récomposant d'elements), vous devrez modifier le document template.html. Nous avons fait guide avec de meilleures pratiques sur la création de votre propre template, et n'hésitez pas à l'utiliser comme point de référence.
81 |
82 |
83 |
84 | Note: Le template est complètement séparé de sa logique, alors vous ne devez pas vous occuper avec une programmation ou avec JavaScript code.
85 |
86 |
87 | Est-ce que je dois avoir une connection Internet pour l'utiliser?
88 |
89 | Oui, mais ce n'est pas nécessaire. Dans l'arrière-plan le template se relie à un document JavaScript file à distance (generator.min.js) mis sur notre serveur d'où il tire toute la logique. Si pour quelque raison vous n'avez pas une connexion internet sur votre ordinateurer, vous pouvez télécharger the script locally, et modifier template.html le document pour montrer la version locale du script.
90 |
91 |
92 |
93 | Généralement, nous vous encourageons à continuer avec l'utilisation du script à distance, car toute mise à jour récente met à jour immédiatement la réflexion dans le template que vous utilisez.
94 |
95 |
96 | Qu'est-ce qui se passe avec les fontes utilisées?
97 |
98 | Le template utilise Google Fontes parce qu'ils sont gratuits pour tous.Si vous voulez utiliser le template hors ligne (sans avoir une connexion internet)vous devrez télécharger et installer les fontes sur votre ordinateur local (SkyFonts est un outil simple qui vous aide à le faire facilement).
99 |
100 |
101 | Est-ce que je peux utiliser le JavaScript source code?
102 |
103 | Absolument!En fait, nous serions fiers si vous décider à l'utiliser (fourchette nous sur GitHub). Si vous décidez de l'utiliser dans un projet commercial ou non-commercial ,n'hésitez pas à nous donner un cri comme nous sommes impatients d'entendre toutes les possibilités d'utilisation de cet outil. Parfois,nous pouvons même vous aider;)
104 |
105 |
106 | Soutenez notre travail
107 |
108 | La maintenance de ce script prend beaucoup de temps et d'effort pour le garder sans bug et à jour. Tout ce que nous demandons est une petite faveur – une discrète impression de votre facturation dans le fond de votre document imprimé.Cela signifierait beaucoup pour nous si vous le laissez là. Merci!
109 |
110 |
111 |
112 | C'est bien même si vous décidez d'éviter le moment de nous exprimer la reconnaissance, alors nous avons fait ce choix plus facile pour vous. Dans le document data.txt nous avons inclus une propriété appelée invoicebus_fineprint qui peut être mise dans true (pour montrer l'impression) ou false (pour cacher l'impression).
113 |
114 |
115 | Vous avez trouvé un bug?
116 |
117 | Si vous rencontrez un problème ou vous trouvez un bug, s'il vous plaît dites-le nous sur notre GitHub repo.S'il vous plaît ne posez pas de questions générales ici,pour cela vous pouvez utiliser le forum de soutien(regardez en bas).
118 |
119 |
120 | Suggestions, questions, critiques?
121 |
122 | Y-a-t-il quelque chose que nous pouvons faire pour améliorer ce template pour vous? De bonnes choses / de mauvaises choses? N'hésitez pas à trouvez un sujet approprié sur notre forum de soutien et frappez nous – nous lisons et nous répondons à chaque question.
123 |
124 |
125 | */}
126 |
--------------------------------------------------------------------------------
/src/docs/how-to/how-to-it.js:
--------------------------------------------------------------------------------
1 | var ib_how_to_data = function(){/*
2 |
3 |
4 | Se sei one-man performer e tutto quello che fai per il tuo business lo fai da solo – benvenuto nel club! Conosci bene la noia di scrivere fatture. Word? Excel? Software di contabilità complicato? Dimentica tutto quello e saluta la tua nuova gioia!
5 |
6 |
7 | Che cosa poso fare con questo modello?
8 |
9 |
10 |
11 | ● Scrivi fatture professionali in pochi secondi.
12 |
13 |
14 | ○ Usa qualsiasi lingua o valuta.
15 |
16 |
17 | ○ Aggiungi il tuo proprio logo con un semplice trascinare e rilasciare.
18 |
19 |
20 | ○ Aggiungi, rimuovi e riordini facilmente le righe delle voci.
21 |
22 |
23 | ○ Aggiungi tasse e sconti.
24 |
25 |
26 | ○ Configura la visibilità della voce nella colonna.
27 |
28 |
29 | ○ Autocalcola subtotali, totali, tasse e sconti.
30 |
31 |
32 | ○ Salva i dati aziendali predefiniti per il futuro utilizzo.
33 |
34 |
35 |
36 |
37 | ● Redisegnalo con un altro stile, usando semplici HTML e CSS technologie.
38 |
39 |
40 | ● Stampalo direttamente.
41 |
42 |
43 | ● Salvalo in PDF o salvalo online.
44 |
45 |
46 |
47 |
48 | Come posso salvare i miei dati aziendali predefiniti per il futuro utilizzo?
49 |
50 | Clicca "Salva Stato Della" bottone e segui le istruzioni sullo schermo.
51 |
52 |
53 | Come salvare la fattura?
54 |
55 | Ci sono due modi per salvare la fattura:
56 |
57 |
58 | - Salvala in PDF usando PDF stampante.
59 |
60 |
61 | - Salvala online nel nostro sistema di fatturazione online Invoicebus.
62 |
63 |
64 |
65 |
66 |
67 | Salvando la fattura in PDF si può fare usando qualcosa che si chiama PDF Print Driver. Questo è anche conosciuto come stampare in PDF perchè il risultato del browser è mandato in un archivio invece in un stampante. Questa funzionalità è creata in alcuni browser (come Google Chrome), mentre in altri (come Firefox o Internet Explorer) devi installare PDF stampante manualmente. Un buono e gratuito PDF stampante è Bullzip. Se già hai installato un PDF stampante, clicca "Stampare", "Salva come PDF" e clicca Salva.
68 |
69 |
70 |
71 | Per salvare la fattura online, devi prima creare un Invoicebus account. Puoi fare questo con un semplice cliccare "Salva Online" bottone. Poi sarai portato ad una pagina sicura dove puoi completare la tua registrazione e salvare la fattura. Per favore, nota che una fattura online è molto più potente che una statica fattura PDF. Per esempio, una fattura online può essere modificata on-the-fly, inviata per email, rintracciata e pagata direttamente con Credit card, PayPal o Bitcoin. Ecco un esempio.
72 |
73 |
74 | Come redisegnare il modello?
75 |
76 | Il modello è fatto con una semplicità nella mente così sarà personalizzato con il tuo marchio e colori. Comunque, una conoscenza di base in HTML e CSS è necessaria.
77 |
78 |
79 |
80 | Per modificazioni più piccole (come cambiamento di colori, caratteri o le dimensioni degli elementi) devi solo modificare l'archivio template.css. Se vuoi fare più grandi cambiamenti strutturali del layout (eliminando o traferendo elementi), devi solo modificare l'archivio template.html. Noi abbiamo creato guide con migliori pratiche di come creare il tuo proprio modello, per questo non esitare a usarlo come punto di riferimento.
81 |
82 |
83 |
84 | Note: Il modello è totalmente diverso dalla sua logica, per questo motivo non devi pasticciare con alcun programma o codice JavaScript.
85 |
86 |
87 | Devo essere collegato a Internet per usarlo?
88 |
89 | Sì, però non è necessario. Sullo sfondo il modello collega ad un archivio JavaScript (generator.min.js) collocato nel nostro server del quale tira tutta la logica. Se per qualche motivo tu non hai Internet connessione al tuo computer, puoi scaricare lo script localmente, e cambiare template.html l'archivio per puntare alla versione locale dello script.
90 |
91 |
92 |
93 | Noi generalmente ti incoraggiaamo di continuare di usare lo script remoto perchè qualsiasi aggiornamento si rifletta immediamente.
94 |
95 |
96 | Che cosa succede con i caratteri usati?
97 |
98 | Il modello usa Google Fonts perché sono gratuiti e aperti per tutti. Se vuoi usare il modello offline (senza essere connesso al'Internet) devi scaricare e installare i caratteri al tuo computer (SkyFonts è un semplice strumento e ti aiuta a fare questo in maniera facile).
99 |
100 |
101 | Posso utilizzare il codice JavaScript?
102 |
103 | Assolutamente! Infatti, saremo orgogliosi se decidi di farlo (forcella noi su GitHub). Nonostante decida di usarlo in progetti commerciali o non, sentiti libero di dirci perché abbiamo voglia di sentire tutte le possibilità come questo strumento puù essere usato. A volte, ti possiamo anche aiutare ;)
104 |
105 |
106 | Supporta il nostro lavoro
107 |
108 | Mantenendo questo script richiede molto tempo e fatica per salvarlo libero e aggiornato. Tutto quello che cerchiamo è un po' di aiuto – delle clausole scritte in piccolo del nostro servizio di fatturazione alla fine del documento. Significherà un mondo per noi se gli lasci lì. Grazie!
109 |
110 |
111 |
112 | Non c'è problema se non vuoi lodarci, per questo motivo abbiamo fatto questo ancora più facile per te. Nell'archivio data.txt abbiamo incluso proprietà chiamata invoicebus_fineprint che può essere imposta su true (per mostrare le clausole) o false (per nascondere le clausole).
113 |
114 |
115 | Hai riscontrato un errore?
116 |
117 | Se incontri qualche problema o errore, per favore denuncialo a GitHub repo. Per favore non porre domande generali qui, invece usa il nostro forum di supporto (vedi giù).
118 |
119 |
120 | Suggerimenti, domande, critiche?
121 |
122 | Esiste qualcosa per rendere questo modello più bello e farlo migliore per te? Cose buone / cose brutte? Sentiti libero di trovare il titolo approporiato al nostro forum di supporto e colpirci – leggiamo e rispondiamo ad ogni post.
123 |
124 |
125 | */}
126 |
--------------------------------------------------------------------------------
/src/docs/raw-data/raw-data-de.js:
--------------------------------------------------------------------------------
1 | var ib_raw_data = function(){/*
2 | var ib_invoice_data = function(){\/*
3 | #=========================================================================================================
4 |
5 |
6 | ### Firmen Daten
7 |
8 | [{company_name}]
9 | |company_name|
10 |
11 | [{company_address}]
12 | |company_address|
13 |
14 | [{company_city_zip_state}]
15 | |company_city_zip_state|
16 |
17 | [{company_phone_fax}]
18 | |company_phone_fax|
19 |
20 | [{company_email_web}]
21 | |company_email_web|
22 |
23 | [{payment_info1}]
24 | |payment_info1|
25 |
26 | [{payment_info2}]
27 | |payment_info2|
28 |
29 | [{payment_info3}]
30 | |payment_info3|
31 |
32 | [{payment_info4}]
33 | |payment_info4|
34 |
35 | [{payment_info5}]
36 | |payment_info5|
37 |
38 | [{issue_date_label}]
39 | |issue_date_label|
40 |
41 | [{issue_date}]
42 | |issue_date|
43 |
44 | [{net_term_label}]
45 | |net_term_label|
46 |
47 | [{net_term}]
48 | |net_term|
49 |
50 | [{due_date_label}]
51 | |due_date_label|
52 |
53 | [{due_date}]
54 | |due_date|
55 |
56 | [{currency_label}]
57 | |currency_label|
58 |
59 | [{currency}]
60 | |currency|
61 |
62 | [{po_number_label}]
63 | |po_number_label|
64 |
65 | [{po_number}]
66 | |po_number|
67 |
68 | [{bill_to_label}]
69 | |bill_to_label|
70 |
71 | [{client_name}]
72 | |client_name|
73 |
74 | [{client_address}]
75 | |client_address|
76 |
77 | [{client_city_zip_state}]
78 | |client_city_zip_state|
79 |
80 | [{client_phone_fax}]
81 | |client_phone_fax|
82 |
83 | [{client_email}]
84 | |client_email|
85 |
86 | [{client_other}]
87 | |client_other|
88 |
89 | [{invoice_title}]
90 | |invoice_title|
91 |
92 | [{invoice_number}]
93 | |invoice_number|
94 |
95 |
96 | ### Spaltennamen
97 |
98 | [{item_row_number_label}]
99 | |item_row_number_label|
100 |
101 | [{item_description_label}]
102 | |item_description_label|
103 |
104 | [{item_quantity_label}]
105 | |item_quantity_label|
106 |
107 | [{item_price_label}]
108 | |item_price_label|
109 |
110 | [{item_discount_label}]
111 | |item_discount_label|
112 |
113 | [{item_tax_label}]
114 | |item_tax_label|
115 |
116 | [{item_line_total_label}]
117 | |item_line_total_label|
118 |
119 | [{item_row_number}]
120 | |item_row_number|
121 |
122 | [{item_description}]
123 | |item_description|
124 |
125 | [{item_quantity}]
126 | |item_quantity|
127 |
128 | [{item_price}]
129 | |item_price|
130 |
131 | [{item_discount}]
132 | |item_discount|
133 |
134 | [{item_tax}]
135 | |item_tax|
136 |
137 | [{item_line_total}]
138 | |item_line_total|
139 |
140 |
141 | ### Zusammenfassung der summen
142 |
143 | [{amount_subtotal_label}]
144 | |amount_subtotal_label|
145 |
146 | [{amount_subtotal}]
147 | |amount_subtotal|
148 |
149 | [{tax_name}]
150 | |tax_name|
151 |
152 | [{tax_value}]
153 | |tax_value|
154 |
155 | [{amount_total_label}]
156 | |amount_total_label|
157 |
158 | [{amount_total}]
159 | |amount_total|
160 |
161 | [{amount_paid_label}]
162 | |amount_paid_label|
163 |
164 | [{amount_due_label}]
165 | |amount_due_label|
166 |
167 | [{amount_due}]
168 | |amount_due|
169 |
170 | [{terms_label}]
171 | |terms_label|
172 |
173 | [{terms}]
174 | |terms|
175 |
176 |
177 | ### Einstellungen
178 |
179 | # Einer von 'dd/mm/yyyy', 'dd-mm-yyyy', 'dd.mm.yyyy', 'mm/dd/yyyy', 'mm-dd-yyyy', 'mm.dd.yyyy', 'yyyy mm dd', 'yyyy-mm-dd', 'yyyy.mm.dd'
180 | [date_format]
181 | |date_format|
182 |
183 | # Einer von 'left' oder 'right'
184 | [currency_position]
185 | |currency_position|
186 |
187 | [show_currency]
188 | |show_currency|
189 |
190 | # Einer von '0,000.00', '0 000.00', '0000.00', '0.000,00', '0 000,00', '0000,00'
191 | [number_format]
192 | |number_format|
193 |
194 | [default_columns]
195 | |default_columns|
196 |
197 | [default_quantity]
198 | |default_quantity|
199 |
200 | [default_price]
201 | |default_price|
202 |
203 | [default_discount]
204 | |default_discount|
205 |
206 | [default_tax]
207 | |default_tax|
208 |
209 | [default_number_rows]
210 | |default_number_rows|
211 |
212 | [auto_calculate_dates]
213 | |auto_calculate_dates|
214 |
215 | [load_items]
216 | |load_items|
217 |
218 | [invoicebus_fineprint]
219 | |invoicebus_fineprint|
220 |
221 | [lang]
222 | |lang|
223 |
224 |
225 | ### Artikel (in dieser reihenfolge item_description@||@item_quantity@||@item_price@||@item_discount@||@item_tax)
226 |
227 | [items]
228 | |items|
229 |
230 |
231 | ### Kundenspezifische daten (im format field_name@||@field_value)
232 |
233 | # Dokument benutzerdefinierte daten
234 | [document_custom]
235 | |document_custom|
236 |
237 |
238 | # Client benutzerdefinierte daten
239 | [client_custom]
240 | |client_custom|
241 |
242 |
243 | ### Logo
244 |
245 | #base64 codierten daten URI von PNG-bild
246 | [{company_logo}]
247 | |company_logo|
248 |
249 |
250 |
251 |
252 | #=========================================================================================================
253 | *\/}
254 | */}
255 |
--------------------------------------------------------------------------------
/src/docs/raw-data/raw-data-en.js:
--------------------------------------------------------------------------------
1 | var ib_raw_data = function(){/*
2 | var ib_invoice_data = function(){\/*
3 | #=========================================================================================================
4 |
5 |
6 | ### Company data
7 |
8 | [{company_name}]
9 | |company_name|
10 |
11 | [{company_address}]
12 | |company_address|
13 |
14 | [{company_city_zip_state}]
15 | |company_city_zip_state|
16 |
17 | [{company_phone_fax}]
18 | |company_phone_fax|
19 |
20 | [{company_email_web}]
21 | |company_email_web|
22 |
23 | [{payment_info1}]
24 | |payment_info1|
25 |
26 | [{payment_info2}]
27 | |payment_info2|
28 |
29 | [{payment_info3}]
30 | |payment_info3|
31 |
32 | [{payment_info4}]
33 | |payment_info4|
34 |
35 | [{payment_info5}]
36 | |payment_info5|
37 |
38 | [{issue_date_label}]
39 | |issue_date_label|
40 |
41 | [{issue_date}]
42 | |issue_date|
43 |
44 | [{net_term_label}]
45 | |net_term_label|
46 |
47 | [{net_term}]
48 | |net_term|
49 |
50 | [{due_date_label}]
51 | |due_date_label|
52 |
53 | [{due_date}]
54 | |due_date|
55 |
56 | [{currency_label}]
57 | |currency_label|
58 |
59 | [{currency}]
60 | |currency|
61 |
62 | [{po_number_label}]
63 | |po_number_label|
64 |
65 | [{po_number}]
66 | |po_number|
67 |
68 | [{bill_to_label}]
69 | |bill_to_label|
70 |
71 | [{client_name}]
72 | |client_name|
73 |
74 | [{client_address}]
75 | |client_address|
76 |
77 | [{client_city_zip_state}]
78 | |client_city_zip_state|
79 |
80 | [{client_phone_fax}]
81 | |client_phone_fax|
82 |
83 | [{client_email}]
84 | |client_email|
85 |
86 | [{client_other}]
87 | |client_other|
88 |
89 | [{invoice_title}]
90 | |invoice_title|
91 |
92 | [{invoice_number}]
93 | |invoice_number|
94 |
95 |
96 | ### Column names
97 |
98 | [{item_row_number_label}]
99 | |item_row_number_label|
100 |
101 | [{item_description_label}]
102 | |item_description_label|
103 |
104 | [{item_quantity_label}]
105 | |item_quantity_label|
106 |
107 | [{item_price_label}]
108 | |item_price_label|
109 |
110 | [{item_discount_label}]
111 | |item_discount_label|
112 |
113 | [{item_tax_label}]
114 | |item_tax_label|
115 |
116 | [{item_line_total_label}]
117 | |item_line_total_label|
118 |
119 | [{item_row_number}]
120 | |item_row_number|
121 |
122 | [{item_description}]
123 | |item_description|
124 |
125 | [{item_quantity}]
126 | |item_quantity|
127 |
128 | [{item_price}]
129 | |item_price|
130 |
131 | [{item_discount}]
132 | |item_discount|
133 |
134 | [{item_tax}]
135 | |item_tax|
136 |
137 | [{item_line_total}]
138 | |item_line_total|
139 |
140 |
141 | ### Summary of totals
142 |
143 | [{amount_subtotal_label}]
144 | |amount_subtotal_label|
145 |
146 | [{amount_subtotal}]
147 | |amount_subtotal|
148 |
149 | [{tax_name}]
150 | |tax_name|
151 |
152 | [{tax_value}]
153 | |tax_value|
154 |
155 | [{amount_total_label}]
156 | |amount_total_label|
157 |
158 | [{amount_total}]
159 | |amount_total|
160 |
161 | [{amount_paid_label}]
162 | |amount_paid_label|
163 |
164 | [{amount_due_label}]
165 | |amount_due_label|
166 |
167 | [{amount_due}]
168 | |amount_due|
169 |
170 | [{terms_label}]
171 | |terms_label|
172 |
173 | [{terms}]
174 | |terms|
175 |
176 |
177 | ### Settings
178 |
179 | # One of 'dd/mm/yyyy', 'dd-mm-yyyy', 'dd.mm.yyyy', 'mm/dd/yyyy', 'mm-dd-yyyy', 'mm.dd.yyyy', 'yyyy mm dd', 'yyyy-mm-dd', 'yyyy.mm.dd'
180 | [date_format]
181 | |date_format|
182 |
183 | # One of 'left' or 'right'
184 | [currency_position]
185 | |currency_position|
186 |
187 | [show_currency]
188 | |show_currency|
189 |
190 | # One of '0,000.00', '0 000.00', '0000.00', '0.000,00', '0 000,00', '0000,00'
191 | [number_format]
192 | |number_format|
193 |
194 | [default_columns]
195 | |default_columns|
196 |
197 | [default_quantity]
198 | |default_quantity|
199 |
200 | [default_price]
201 | |default_price|
202 |
203 | [default_discount]
204 | |default_discount|
205 |
206 | [default_tax]
207 | |default_tax|
208 |
209 | [default_number_rows]
210 | |default_number_rows|
211 |
212 | [auto_calculate_dates]
213 | |auto_calculate_dates|
214 |
215 | [load_items]
216 | |load_items|
217 |
218 | [invoicebus_fineprint]
219 | |invoicebus_fineprint|
220 |
221 | [lang]
222 | |lang|
223 |
224 |
225 | ### Items (in this order item_description@||@item_quantity@||@item_price@||@item_discount@||@item_tax)
226 |
227 | [items]
228 | |items|
229 |
230 |
231 | ### Custom data (in format field_name@||@field_value)
232 |
233 | # Document custom data
234 | [document_custom]
235 | |document_custom|
236 |
237 | # Client custom data
238 | [client_custom]
239 | |client_custom|
240 |
241 |
242 | ### Logo
243 |
244 | # base64 encoded data URI of PNG image
245 | [{company_logo}]
246 | |company_logo|
247 |
248 |
249 |
250 |
251 | #=========================================================================================================
252 | *\/}
253 | */}
254 |
--------------------------------------------------------------------------------
/src/docs/raw-data/raw-data-es.js:
--------------------------------------------------------------------------------
1 | var ib_raw_data = function(){/*
2 | var ib_invoice_data = function(){\/*
3 | #=========================================================================================================
4 |
5 |
6 | ### Datos de la empresa
7 |
8 | [{company_name}]
9 | |company_name|
10 |
11 | [{company_address}]
12 | |company_address|
13 |
14 | [{company_city_zip_state}]
15 | |company_city_zip_state|
16 |
17 | [{company_phone_fax}]
18 | |company_phone_fax|
19 |
20 | [{company_email_web}]
21 | |company_email_web|
22 |
23 | [{payment_info1}]
24 | |payment_info1|
25 |
26 | [{payment_info2}]
27 | |payment_info2|
28 |
29 | [{payment_info3}]
30 | |payment_info3|
31 |
32 | [{payment_info4}]
33 | |payment_info4|
34 |
35 | [{payment_info5}]
36 | |payment_info5|
37 |
38 | [{issue_date_label}]
39 | |issue_date_label|
40 |
41 | [{issue_date}]
42 | |issue_date|
43 |
44 | [{net_term_label}]
45 | |net_term_label|
46 |
47 | [{net_term}]
48 | |net_term|
49 |
50 | [{due_date_label}]
51 | |due_date_label|
52 |
53 | [{due_date}]
54 | |due_date|
55 |
56 | [{currency_label}]
57 | |currency_label|
58 |
59 | [{currency}]
60 | |currency|
61 |
62 | [{po_number_label}]
63 | |po_number_label|
64 |
65 | [{po_number}]
66 | |po_number|
67 |
68 | [{bill_to_label}]
69 | |bill_to_label|
70 |
71 | [{client_name}]
72 | |client_name|
73 |
74 | [{client_address}]
75 | |client_address|
76 |
77 | [{client_city_zip_state}]
78 | |client_city_zip_state|
79 |
80 | [{client_phone_fax}]
81 | |client_phone_fax|
82 |
83 | [{client_email}]
84 | |client_email|
85 |
86 | [{client_other}]
87 | |client_other|
88 |
89 | [{invoice_title}]
90 | |invoice_title|
91 |
92 | [{invoice_number}]
93 | |invoice_number|
94 |
95 |
96 | ### Nombres de las columnas
97 |
98 | [{item_row_number_label}]
99 | |item_row_number_label|
100 |
101 | [{item_description_label}]
102 | |item_description_label|
103 |
104 | [{item_quantity_label}]
105 | |item_quantity_label|
106 |
107 | [{item_price_label}]
108 | |item_price_label|
109 |
110 | [{item_discount_label}]
111 | |item_discount_label|
112 |
113 | [{item_tax_label}]
114 | |item_tax_label|
115 |
116 | [{item_line_total_label}]
117 | |item_line_total_label|
118 |
119 | [{item_row_number}]
120 | |item_row_number|
121 |
122 | [{item_description}]
123 | |item_description|
124 |
125 | [{item_quantity}]
126 | |item_quantity|
127 |
128 | [{item_price}]
129 | |item_price|
130 |
131 | [{item_discount}]
132 | |item_discount|
133 |
134 | [{item_tax}]
135 | |item_tax|
136 |
137 | [{item_line_total}]
138 | |item_line_total|
139 |
140 |
141 | ### Resumen de los totales
142 |
143 | [{amount_subtotal_label}]
144 | |amount_subtotal_label|
145 |
146 | [{amount_subtotal}]
147 | |amount_subtotal|
148 |
149 | [{tax_name}]
150 | |tax_name|
151 |
152 | [{tax_value}]
153 | |tax_value|
154 |
155 | [{amount_total_label}]
156 | |amount_total_label|
157 |
158 | [{amount_total}]
159 | |amount_total|
160 |
161 | [{amount_paid_label}]
162 | |amount_paid_label|
163 |
164 | [{amount_due_label}]
165 | |amount_due_label|
166 |
167 | [{amount_due}]
168 | |amount_due|
169 |
170 | [{terms_label}]
171 | |terms_label|
172 |
173 | [{terms}]
174 | |terms|
175 |
176 |
177 | ### Configuraciones
178 |
179 | # Uno de los siguentes 'dd/mm/yyyy', 'dd-mm-yyyy', 'dd.mm.yyyy', 'mm/dd/yyyy', 'mm-dd-yyyy', 'mm.dd.yyyy', 'yyyy mm dd', 'yyyy-mm-dd', 'yyyy.mm.dd'
180 | [date_format]
181 | |date_format|
182 |
183 | # Uno de 'left' o 'right'
184 | [currency_position]
185 | |currency_position|
186 |
187 | [show_currency]
188 | |show_currency|
189 |
190 | # Uno de '0,000.00', '0 000.00', '0000.00', '0.000,00', '0 000,00', '0000,00'
191 | [number_format]
192 | |number_format|
193 |
194 | [default_columns]
195 | |default_columns|
196 |
197 | [default_quantity]
198 | |default_quantity|
199 |
200 | [default_price]
201 | |default_price|
202 |
203 | [default_discount]
204 | |default_discount|
205 |
206 | [default_tax]
207 | |default_tax|
208 |
209 | [default_number_rows]
210 | |default_number_rows|
211 |
212 | [auto_calculate_dates]
213 | |auto_calculate_dates|
214 |
215 | [load_items]
216 | |load_items|
217 |
218 | [invoicebus_fineprint]
219 | |invoicebus_fineprint|
220 |
221 | [lang]
222 | |lang|
223 |
224 |
225 | ### Secciones (en este orden item_description@||@item_quantity@||@item_price@||@item_discount@||@item_tax)
226 |
227 | [items]
228 | |items|
229 |
230 |
231 | ### Fecha personalizada (in format field_name@||@field_value)
232 |
233 | # Fecha personalizada del documento
234 | [document_custom]
235 | |document_custom|
236 |
237 |
238 | # Fecha personalizada del cliente
239 | [client_custom]
240 | |client_custom|
241 |
242 |
243 | ### Logotipo
244 |
245 | # base64 data codificada URI del imagen PNG
246 | [{company_logo}]
247 | |company_logo|
248 |
249 |
250 |
251 |
252 | #=========================================================================================================
253 | *\/}
254 | */}
255 |
--------------------------------------------------------------------------------
/src/docs/raw-data/raw-data-fr.js:
--------------------------------------------------------------------------------
1 | var ib_raw_data = function(){/*
2 | var ib_invoice_data = function(){\/*
3 | #=========================================================================================================
4 |
5 |
6 | ### Données sur l'entreprise
7 |
8 | [{company_name}]
9 | |company_name|
10 |
11 | [{company_address}]
12 | |company_address|
13 |
14 | [{company_city_zip_state}]
15 | |company_city_zip_state|
16 |
17 | [{company_phone_fax}]
18 | |company_phone_fax|
19 |
20 | [{company_email_web}]
21 | |company_email_web|
22 |
23 | [{payment_info1}]
24 | |payment_info1|
25 |
26 | [{payment_info2}]
27 | |payment_info2|
28 |
29 | [{payment_info3}]
30 | |payment_info3|
31 |
32 | [{payment_info4}]
33 | |payment_info4|
34 |
35 | [{payment_info5}]
36 | |payment_info5|
37 |
38 | [{issue_date_label}]
39 | |issue_date_label|
40 |
41 | [{issue_date}]
42 | |issue_date|
43 |
44 | [{net_term_label}]
45 | |net_term_label|
46 |
47 | [{net_term}]
48 | |net_term|
49 |
50 | [{due_date_label}]
51 | |due_date_label|
52 |
53 | [{due_date}]
54 | |due_date|
55 |
56 | [{currency_label}]
57 | |currency_label|
58 |
59 | [{currency}]
60 | |currency|
61 |
62 | [{po_number_label}]
63 | |po_number_label|
64 |
65 | [{po_number}]
66 | |po_number|
67 |
68 | [{bill_to_label}]
69 | |bill_to_label|
70 |
71 | [{client_name}]
72 | |client_name|
73 |
74 | [{client_address}]
75 | |client_address|
76 |
77 | [{client_city_zip_state}]
78 | |client_city_zip_state|
79 |
80 | [{client_phone_fax}]
81 | |client_phone_fax|
82 |
83 | [{client_email}]
84 | |client_email|
85 |
86 | [{client_other}]
87 | |client_other|
88 |
89 | [{invoice_title}]
90 | |invoice_title|
91 |
92 | [{invoice_number}]
93 | |invoice_number|
94 |
95 |
96 | ### Noms de la colonne
97 |
98 | [{item_row_number_label}]
99 | |item_row_number_label|
100 |
101 | [{item_description_label}]
102 | |item_description_label|
103 |
104 | [{item_quantity_label}]
105 | |item_quantity_label|
106 |
107 | [{item_price_label}]
108 | |item_price_label|
109 |
110 | [{item_discount_label}]
111 | |item_discount_label|
112 |
113 | [{item_tax_label}]
114 | |item_tax_label|
115 |
116 | [{item_line_total_label}]
117 | |item_line_total_label|
118 |
119 | [{item_row_number}]
120 | |item_row_number|
121 |
122 | [{item_description}]
123 | |item_description|
124 |
125 | [{item_quantity}]
126 | |item_quantity|
127 |
128 | [{item_price}]
129 | |item_price|
130 |
131 | [{item_discount}]
132 | |item_discount|
133 |
134 | [{item_tax}]
135 | |item_tax|
136 |
137 | [{item_line_total}]
138 | |item_line_total|
139 |
140 |
141 | ### Sommaire des totals
142 |
143 | [{amount_subtotal_label}]
144 | |amount_subtotal_label|
145 |
146 | [{amount_subtotal}]
147 | |amount_subtotal|
148 |
149 | [{tax_name}]
150 | |tax_name|
151 |
152 | [{tax_value}]
153 | |tax_value|
154 |
155 | [{amount_total_label}]
156 | |amount_total_label|
157 |
158 | [{amount_total}]
159 | |amount_total|
160 |
161 | [{amount_paid_label}]
162 | |amount_paid_label|
163 |
164 | [{amount_due_label}]
165 | |amount_due_label|
166 |
167 | [{amount_due}]
168 | |amount_due|
169 |
170 | [{terms_label}]
171 | |terms_label|
172 |
173 | [{terms}]
174 | |terms|
175 |
176 |
177 | ### Settings
178 |
179 | # Un des suivants 'dd/mm/yyyy', 'dd-mm-yyyy', 'dd.mm.yyyy', 'mm/dd/yyyy', 'mm-dd-yyyy', 'mm.dd.yyyy', 'yyyy mm dd', 'yyyy-mm-dd', 'yyyy.mm.dd'
180 | [date_format]
181 | |date_format|
182 |
183 | # Un des suivants'left' ou 'right'
184 | [currency_position]
185 | |currency_position|
186 |
187 | [show_currency]
188 | |show_currency|
189 |
190 | # Un des suivants '0,000.00', '0 000.00', '0000.00', '0.000,00', '0 000,00', '0000,00'
191 | [number_format]
192 | |number_format|
193 |
194 | [default_columns]
195 | |default_columns|
196 |
197 | [default_quantity]
198 | |default_quantity|
199 |
200 | [default_price]
201 | |default_price|
202 |
203 | [default_discount]
204 | |default_discount|
205 |
206 | [default_tax]
207 | |default_tax|
208 |
209 | [default_number_rows]
210 | |default_number_rows|
211 |
212 | [auto_calculate_dates]
213 | |auto_calculate_dates|
214 |
215 | [load_items]
216 | |load_items|
217 |
218 | [invoicebus_fineprint]
219 | |invoicebus_fineprint|
220 |
221 | [lang]
222 | |lang|
223 |
224 |
225 | ### Articles (dans l'ordre qui suit item_description@||@item_quantity@||@item_price@||@item_discount@||@item_tax)
226 |
227 | [items]
228 | |items|
229 |
230 |
231 | ### Données personnalisées (dans un format field_name@||@field_value)
232 |
233 | # Document données personnalisées
234 | [document_custom]
235 | |document_custom|
236 |
237 |
238 | # Client données personnalisées
239 | [client_custom]
240 | |client_custom|
241 |
242 |
243 |
244 | ### Logo
245 |
246 | # base64 données encodées URI d'image PNG
247 | [{company_logo}]
248 | |company_logo|
249 |
250 |
251 |
252 |
253 | #=========================================================================================================
254 | *\/}
255 | */}
256 |
--------------------------------------------------------------------------------
/src/docs/raw-data/raw-data-it.js:
--------------------------------------------------------------------------------
1 | var ib_raw_data = function(){/*
2 | var ib_invoice_data = function(){\/*
3 | #=========================================================================================================
4 |
5 |
6 | ### Dati sull'azienda
7 |
8 | [{company_name}]
9 | |company_name|
10 |
11 | [{company_address}]
12 | |company_address|
13 |
14 | [{company_city_zip_state}]
15 | |company_city_zip_state|
16 |
17 | [{company_phone_fax}]
18 | |company_phone_fax|
19 |
20 | [{company_email_web}]
21 | |company_email_web|
22 |
23 | [{payment_info1}]
24 | |payment_info1|
25 |
26 | [{payment_info2}]
27 | |payment_info2|
28 |
29 | [{payment_info3}]
30 | |payment_info3|
31 |
32 | [{payment_info4}]
33 | |payment_info4|
34 |
35 | [{payment_info5}]
36 | |payment_info5|
37 |
38 | [{issue_date_label}]
39 | |issue_date_label|
40 |
41 | [{issue_date}]
42 | |issue_date|
43 |
44 | [{net_term_label}]
45 | |net_term_label|
46 |
47 | [{net_term}]
48 | |net_term|
49 |
50 | [{due_date_label}]
51 | |due_date_label|
52 |
53 | [{due_date}]
54 | |due_date|
55 |
56 | [{currency_label}]
57 | |currency_label|
58 |
59 | [{currency}]
60 | |currency|
61 |
62 | [{po_number_label}]
63 | |po_number_label|
64 |
65 | [{po_number}]
66 | |po_number|
67 |
68 | [{bill_to_label}]
69 | |bill_to_label|
70 |
71 | [{client_name}]
72 | |client_name|
73 |
74 | [{client_address}]
75 | |client_address|
76 |
77 | [{client_city_zip_state}]
78 | |client_city_zip_state|
79 |
80 | [{client_phone_fax}]
81 | |client_phone_fax|
82 |
83 | [{client_email}]
84 | |client_email|
85 |
86 | [{client_other}]
87 | |client_other|
88 |
89 | [{invoice_title}]
90 | |invoice_title|
91 |
92 | [{invoice_number}]
93 | |invoice_number|
94 |
95 |
96 | ### Nomi delle colonne
97 |
98 | [{item_row_number_label}]
99 | |item_row_number_label|
100 |
101 | [{item_description_label}]
102 | |item_description_label|
103 |
104 | [{item_quantity_label}]
105 | |item_quantity_label|
106 |
107 | [{item_price_label}]
108 | |item_price_label|
109 |
110 | [{item_discount_label}]
111 | |item_discount_label|
112 |
113 | [{item_tax_label}]
114 | |item_tax_label|
115 |
116 | [{item_line_total_label}]
117 | |item_line_total_label|
118 |
119 | [{item_row_number}]
120 | |item_row_number|
121 |
122 | [{item_description}]
123 | |item_description|
124 |
125 | [{item_quantity}]
126 | |item_quantity|
127 |
128 | [{item_price}]
129 | |item_price|
130 |
131 | [{item_discount}]
132 | |item_discount|
133 |
134 | [{item_tax}]
135 | |item_tax|
136 |
137 | [{item_line_total}]
138 | |item_line_total|
139 |
140 |
141 | ### Riassunto dei totali
142 |
143 | [{amount_subtotal_label}]
144 | |amount_subtotal_label|
145 |
146 | [{amount_subtotal}]
147 | |amount_subtotal|
148 |
149 | [{tax_name}]
150 | |tax_name|
151 |
152 | [{tax_value}]
153 | |tax_value|
154 |
155 | [{amount_total_label}]
156 | |amount_total_label|
157 |
158 | [{amount_total}]
159 | |amount_total|
160 |
161 | [{amount_paid_label}]
162 | |amount_paid_label|
163 |
164 | [{amount_due_label}]
165 | |amount_due_label|
166 |
167 | [{amount_due}]
168 | |amount_due|
169 |
170 | [{terms_label}]
171 | |terms_label|
172 |
173 | [{terms}]
174 | |terms|
175 |
176 |
177 | ### Impostazioni
178 |
179 | # Uno dei seguenti 'dd/mm/yyyy', 'dd-mm-yyyy', 'dd.mm.yyyy', 'mm/dd/yyyy', 'mm-dd-yyyy', 'mm.dd.yyyy', 'yyyy mm dd', 'yyyy-mm-dd', 'yyyy.mm.dd'
180 | [date_format]
181 | |date_format|
182 |
183 | # Uno di 'left' o 'right'
184 | [currency_position]
185 | |currency_position|
186 |
187 | [show_currency]
188 | |show_currency|
189 |
190 | # Uno di '0,000.00', '0 000.00', '0000.00', '0.000,00', '0 000,00', '0000,00'
191 | [number_format]
192 | |number_format|
193 |
194 | [default_columns]
195 | |default_columns|
196 |
197 | [default_quantity]
198 | |default_quantity|
199 |
200 | [default_price]
201 | |default_price|
202 |
203 | [default_discount]
204 | |default_discount|
205 |
206 | [default_tax]
207 | |default_tax|
208 |
209 | [default_number_rows]
210 | |default_number_rows|
211 |
212 | [auto_calculate_dates]
213 | |auto_calculate_dates|
214 |
215 | [load_items]
216 | |load_items|
217 |
218 | [invoicebus_fineprint]
219 | |invoicebus_fineprint|
220 |
221 | [lang]
222 | |lang|
223 |
224 |
225 | ### Voci (in questo ordine item_description@||@item_quantity@||@item_price@||@item_discount@||@item_tax)
226 |
227 | [items]
228 | |items|
229 |
230 |
231 | ### Data personalizzata (in format field_name@||@field_value)
232 |
233 | # Data personalizzata del documento
234 | [document_custom]
235 | |document_custom|
236 |
237 |
238 | # Data personalizzata del cliente
239 | [client_custom]
240 | |client_custom|
241 |
242 |
243 |
244 | ### Logo
245 |
246 | # base64 data codificata URI di PNG immagine
247 | [{company_logo}]
248 | |company_logo|
249 |
250 |
251 |
252 |
253 | #=========================================================================================================
254 | *\/}
255 | */}
256 |
--------------------------------------------------------------------------------
/src/docs/save-state/save-state-de.js:
--------------------------------------------------------------------------------
1 | var ib_save_state_data = function(){/*
2 |
3 |
4 | Diese aktion wird den aktuellen status der vorlage zu einer lokalen datei mit dem namen data.txt speichern. Die daten aus dieser datei verwendet werden, um die schablonenfelder in zukunft vorab auszufüllen. Dies ist praktisch, wenn sie ihre standard-details zu speichern möchten, wie firmenadresse, logo, währung, notizen, usw., so dass sie nicht brauchen, sie jedes mal neu eingeben.
5 |
6 |
7 |
8 | Nach einem klick auf die schaltfläche unten, werden sie die datei zu speichern aufgefordert.
9 |
10 |
11 |
12 | Achten sie darauf, diese datei zu benennen data.txt und es in der vorlage verzeichnis speichern. Wenn die datei bereits vorhanden ist, überschrieben.
13 |
14 |
15 |
16 | Hinweis: Speichern der zustand der vorlage ist nicht beabsichtigt, eine tatsächliche instanz der rechnung für die aufzeichnung zu speichern. Dazu sollten sie entweder um die rechnung zu PDF speichern (durch die option drucken mit) oder speichern sie es online.
17 |
18 |
19 | Speichern data.txt
20 | Rechts auf die schaltfläche klicken, und wählen sie "Verknüpfte Datei Laden Unter..."
21 |
22 | */}
23 |
--------------------------------------------------------------------------------
/src/docs/save-state/save-state-en.js:
--------------------------------------------------------------------------------
1 | var ib_save_state_data = function(){/*
2 |
3 |
4 | This action will save the current state of the template to a local .txt file. The data from this file can be used to pre-populate the template fields in the future. This comes handy when you want to save the invoice details such as company address, logo, client info, currency, notes, etc. so you don't need to re-enter them every time.
5 |
6 |
7 |
8 | After clicking the button below, you'll be prompted to save the file. In order to open the file in future make sure you save it in the template root directory. The saved file will store instance of the invoice for record keeping.
9 |
10 |
11 |
12 | To save the current invoice data as your default, make sure to name the file data.txt and save it in the template root directory. If the file already exists, overwrite it.
13 |
14 |
15 |
16 | Hint: In addition to saving the data locally, you can save the invoice to PDF (by using the Print option) or save it online.
17 |
18 |
19 | Save Invoice Data
20 | Right click the button and choose "Download Linked File As..."
21 |
22 | */}
23 |
--------------------------------------------------------------------------------
/src/docs/save-state/save-state-es.js:
--------------------------------------------------------------------------------
1 | var ib_save_state_data = function(){/*
2 |
3 |
4 | Esta accion guardara el estado actual de la plantilla en un archivo local llamado data.txt. Los datos de este asrchivo seran usados para rellenar los campos de la plantilla previamente en el futuro. Esto ocurre cuando quieres guardar los datos predeterminados como ubicacion de la empresa, logotipo, moneda, notas para no volver a escribirlos cada vez.
5 |
6 |
7 |
8 | Despues de hacer clic en el boton de abajo, se le preguntara si deseas guardar el archivo.
9 |
10 |
11 |
12 | No se olvide de dar nombre a este archivo data.txt y guardarlo en la carpeta de plantillas. Si el archivo ya existe, sobrescribalo.
13 |
14 |
15 |
16 | Nota: Guardando el estado de la plantilla no pretende memorizar un ejemplo real de la factura para el mantenimiento de registros. Por esto tu debes o guardar la factura en PDF (by using the Print option) o guardarla online.
17 |
18 |
19 | Guarda los data.txt
20 | Clica con el boton derecho y selecciona "Descargar Archivo Enlazado Como..."
21 |
22 | */}
23 |
--------------------------------------------------------------------------------
/src/docs/save-state/save-state-fr.js:
--------------------------------------------------------------------------------
1 | var ib_save_state_data = function(){/*
2 |
3 |
4 | Cette action sauvegardera l'état actuel du template dans un documant local appelé data.txt. Les données de ce document seront utilisées pour to pré-peupler les champs du template dans l'avenir. Cela représente une aide quand vous voulez sauvegarder vos détails de défaut tels que l'adresse,le logo de l'entreprise, la monnaie,les notes, etc., alors vous n'avez pas besoin de les taper chaque fois de nouveau.
5 |
6 |
7 |
8 | Après avoir cliqué sur la touche en bas,vous serez incité à sauvegarder le document.
9 |
10 |
11 |
12 | N'oubliez pas à donner un nom au document data.txt et à le sauvegarder dans le directoire du template. Si le document existe déjà, récrivez-le.
13 |
14 |
15 |
16 | Note: Sauvegarder l'état du template ne veut pas dire garder une instance actuelle de la facture pour le dossier. Pour cela,vous devriez soit sauvegarder la facture sous PDF (en utilisant l'option Imprimer) ou sauvegarder en ligne.
17 |
18 |
19 | Enregistrer data.txt
20 | Droit cliquez la touche et choisissez "Télécharger Le Fichier Lié Sous..."
21 |
22 | */}
23 |
--------------------------------------------------------------------------------
/src/docs/save-state/save-state-it.js:
--------------------------------------------------------------------------------
1 | var ib_save_state_data = function(){/*
2 |
3 |
4 | Questa azione salvera lo stato corrente del modello in un archivio locale chiamato data.txt. I dati di questo archivio saranno usati per completare i campi del modello nel futuro. Questo avviene a portata di mano quando vuoi salvare i dettagli predefiniti come indirizzo dell'azienda, logo, valuta, note, ecc., per non scriverli di nuovo ogni volta.
5 |
6 |
7 |
8 | Dopo aver cliccato sul bottone qui sotto, verra chiesto di salvare l'archivio.
9 |
10 |
11 |
12 | Non dimenticare di dare nome a questo archivio data.txt e salvarlo nella cartella dei modelli. Se l'archivio esiste gia, sovrascrivilo.
13 |
14 |
15 |
16 | Nota: Salvando lo stato del modello non e destinato a memorizzare un'istanza effettiva della fattura per la tenuta dei registri. Per questo, tu devi o salvare il modello in PDF (usando l'opzione Print) o salvarlo online.
17 |
18 |
19 | Salva i dati.txt
20 | Clicca con il tasto destro e scegli "Scaricare File Collegato Come..."
21 |
22 | */}
23 |
--------------------------------------------------------------------------------
/src/fonts/LICENSES:
--------------------------------------------------------------------------------
1 |
2 | Apache License
3 | Version 2.0, January 2004
4 | http://www.apache.org/licenses/
5 |
6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7 |
8 | 1. Definitions.
9 |
10 | "License" shall mean the terms and conditions for use, reproduction,
11 | and distribution as defined by Sections 1 through 9 of this document.
12 |
13 | "Licensor" shall mean the copyright owner or entity authorized by
14 | the copyright owner that is granting the License.
15 |
16 | "Legal Entity" shall mean the union of the acting entity and all
17 | other entities that control, are controlled by, or are under common
18 | control with that entity. For the purposes of this definition,
19 | "control" means (i) the power, direct or indirect, to cause the
20 | direction or management of such entity, whether by contract or
21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
22 | outstanding shares, or (iii) beneficial ownership of such entity.
23 |
24 | "You" (or "Your") shall mean an individual or Legal Entity
25 | exercising permissions granted by this License.
26 |
27 | "Source" form shall mean the preferred form for making modifications,
28 | including but not limited to software source code, documentation
29 | source, and configuration files.
30 |
31 | "Object" form shall mean any form resulting from mechanical
32 | transformation or translation of a Source form, including but
33 | not limited to compiled object code, generated documentation,
34 | and conversions to other media types.
35 |
36 | "Work" shall mean the work of authorship, whether in Source or
37 | Object form, made available under the License, as indicated by a
38 | copyright notice that is included in or attached to the work
39 | (an example is provided in the Appendix below).
40 |
41 | "Derivative Works" shall mean any work, whether in Source or Object
42 | form, that is based on (or derived from) the Work and for which the
43 | editorial revisions, annotations, elaborations, or other modifications
44 | represent, as a whole, an original work of authorship. For the purposes
45 | of this License, Derivative Works shall not include works that remain
46 | separable from, or merely link (or bind by name) to the interfaces of,
47 | the Work and Derivative Works thereof.
48 |
49 | "Contribution" shall mean any work of authorship, including
50 | the original version of the Work and any modifications or additions
51 | to that Work or Derivative Works thereof, that is intentionally
52 | submitted to Licensor for inclusion in the Work by the copyright owner
53 | or by an individual or Legal Entity authorized to submit on behalf of
54 | the copyright owner. For the purposes of this definition, "submitted"
55 | means any form of electronic, verbal, or written communication sent
56 | to the Licensor or its representatives, including but not limited to
57 | communication on electronic mailing lists, source code control systems,
58 | and issue tracking systems that are managed by, or on behalf of, the
59 | Licensor for the purpose of discussing and improving the Work, but
60 | excluding communication that is conspicuously marked or otherwise
61 | designated in writing by the copyright owner as "Not a Contribution."
62 |
63 | "Contributor" shall mean Licensor and any individual or Legal Entity
64 | on behalf of whom a Contribution has been received by Licensor and
65 | subsequently incorporated within the Work.
66 |
67 | 2. Grant of Copyright License. Subject to the terms and conditions of
68 | this License, each Contributor hereby grants to You a perpetual,
69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70 | copyright license to reproduce, prepare Derivative Works of,
71 | publicly display, publicly perform, sublicense, and distribute the
72 | Work and such Derivative Works in Source or Object form.
73 |
74 | 3. Grant of Patent License. Subject to the terms and conditions of
75 | this License, each Contributor hereby grants to You a perpetual,
76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77 | (except as stated in this section) patent license to make, have made,
78 | use, offer to sell, sell, import, and otherwise transfer the Work,
79 | where such license applies only to those patent claims licensable
80 | by such Contributor that are necessarily infringed by their
81 | Contribution(s) alone or by combination of their Contribution(s)
82 | with the Work to which such Contribution(s) was submitted. If You
83 | institute patent litigation against any entity (including a
84 | cross-claim or counterclaim in a lawsuit) alleging that the Work
85 | or a Contribution incorporated within the Work constitutes direct
86 | or contributory patent infringement, then any patent licenses
87 | granted to You under this License for that Work shall terminate
88 | as of the date such litigation is filed.
89 |
90 | 4. Redistribution. You may reproduce and distribute copies of the
91 | Work or Derivative Works thereof in any medium, with or without
92 | modifications, and in Source or Object form, provided that You
93 | meet the following conditions:
94 |
95 | (a) You must give any other recipients of the Work or
96 | Derivative Works a copy of this License; and
97 |
98 | (b) You must cause any modified files to carry prominent notices
99 | stating that You changed the files; and
100 |
101 | (c) You must retain, in the Source form of any Derivative Works
102 | that You distribute, all copyright, patent, trademark, and
103 | attribution notices from the Source form of the Work,
104 | excluding those notices that do not pertain to any part of
105 | the Derivative Works; and
106 |
107 | (d) If the Work includes a "NOTICE" text file as part of its
108 | distribution, then any Derivative Works that You distribute must
109 | include a readable copy of the attribution notices contained
110 | within such NOTICE file, excluding those notices that do not
111 | pertain to any part of the Derivative Works, in at least one
112 | of the following places: within a NOTICE text file distributed
113 | as part of the Derivative Works; within the Source form or
114 | documentation, if provided along with the Derivative Works; or,
115 | within a display generated by the Derivative Works, if and
116 | wherever such third-party notices normally appear. The contents
117 | of the NOTICE file are for informational purposes only and
118 | do not modify the License. You may add Your own attribution
119 | notices within Derivative Works that You distribute, alongside
120 | or as an addendum to the NOTICE text from the Work, provided
121 | that such additional attribution notices cannot be construed
122 | as modifying the License.
123 |
124 | You may add Your own copyright statement to Your modifications and
125 | may provide additional or different license terms and conditions
126 | for use, reproduction, or distribution of Your modifications, or
127 | for any such Derivative Works as a whole, provided Your use,
128 | reproduction, and distribution of the Work otherwise complies with
129 | the conditions stated in this License.
130 |
131 | 5. Submission of Contributions. Unless You explicitly state otherwise,
132 | any Contribution intentionally submitted for inclusion in the Work
133 | by You to the Licensor shall be under the terms and conditions of
134 | this License, without any additional terms or conditions.
135 | Notwithstanding the above, nothing herein shall supersede or modify
136 | the terms of any separate license agreement you may have executed
137 | with Licensor regarding such Contributions.
138 |
139 | 6. Trademarks. This License does not grant permission to use the trade
140 | names, trademarks, service marks, or product names of the Licensor,
141 | except as required for reasonable and customary use in describing the
142 | origin of the Work and reproducing the content of the NOTICE file.
143 |
144 | 7. Disclaimer of Warranty. Unless required by applicable law or
145 | agreed to in writing, Licensor provides the Work (and each
146 | Contributor provides its Contributions) on an "AS IS" BASIS,
147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148 | implied, including, without limitation, any warranties or conditions
149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150 | PARTICULAR PURPOSE. You are solely responsible for determining the
151 | appropriateness of using or redistributing the Work and assume any
152 | risks associated with Your exercise of permissions under this License.
153 |
154 | 8. Limitation of Liability. In no event and under no legal theory,
155 | whether in tort (including negligence), contract, or otherwise,
156 | unless required by applicable law (such as deliberate and grossly
157 | negligent acts) or agreed to in writing, shall any Contributor be
158 | liable to You for damages, including any direct, indirect, special,
159 | incidental, or consequential damages of any character arising as a
160 | result of this License or out of the use or inability to use the
161 | Work (including but not limited to damages for loss of goodwill,
162 | work stoppage, computer failure or malfunction, or any and all
163 | other commercial damages or losses), even if such Contributor
164 | has been advised of the possibility of such damages.
165 |
166 | 9. Accepting Warranty or Additional Liability. While redistributing
167 | the Work or Derivative Works thereof, You may choose to offer,
168 | and charge a fee for, acceptance of support, warranty, indemnity,
169 | or other liability obligations and/or rights consistent with this
170 | License. However, in accepting such obligations, You may act only
171 | on Your own behalf and on Your sole responsibility, not on behalf
172 | of any other Contributor, and only if You agree to indemnify,
173 | defend, and hold each Contributor harmless for any liability
174 | incurred by, or claims asserted against, such Contributor by reason
175 | of your accepting any such warranty or additional liability.
176 |
177 | END OF TERMS AND CONDITIONS
178 |
179 | APPENDIX: How to apply the Apache License to your work.
180 |
181 | To apply the Apache License to your work, attach the following
182 | boilerplate notice, with the fields enclosed by brackets "[]"
183 | replaced with your own identifying information. (Don't include
184 | the brackets!) The text should be enclosed in the appropriate
185 | comment syntax for the file format. We also recommend that a
186 | file or class name and description of purpose be included on the
187 | same "printed page" as the copyright notice for easier
188 | identification within third-party archives.
189 |
190 | Copyright [yyyy] [name of copyright owner]
191 |
192 | Licensed under the Apache License, Version 2.0 (the "License");
193 | you may not use this file except in compliance with the License.
194 | You may obtain a copy of the License at
195 |
196 | http://www.apache.org/licenses/LICENSE-2.0
197 |
198 | Unless required by applicable law or agreed to in writing, software
199 | distributed under the License is distributed on an "AS IS" BASIS,
200 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201 | See the License for the specific language governing permissions and
202 | limitations under the License.
203 |
--------------------------------------------------------------------------------
/src/fonts/fontawesome-webfont-subset.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Invoicebus/html-invoice-generator/e1a2060d76c8d9e03d3904d59592ad685659c1d6/src/fonts/fontawesome-webfont-subset.eot
--------------------------------------------------------------------------------
/src/fonts/fontawesome-webfont-subset.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Invoicebus/html-invoice-generator/e1a2060d76c8d9e03d3904d59592ad685659c1d6/src/fonts/fontawesome-webfont-subset.otf
--------------------------------------------------------------------------------
/src/fonts/fontawesome-webfont-subset.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/fonts/fontawesome-webfont-subset.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Invoicebus/html-invoice-generator/e1a2060d76c8d9e03d3904d59592ad685659c1d6/src/fonts/fontawesome-webfont-subset.ttf
--------------------------------------------------------------------------------
/src/fonts/fontawesome-webfont-subset.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Invoicebus/html-invoice-generator/e1a2060d76c8d9e03d3904d59592ad685659c1d6/src/fonts/fontawesome-webfont-subset.woff
--------------------------------------------------------------------------------
/src/fonts/fontawesome-webfont-subset.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Invoicebus/html-invoice-generator/e1a2060d76c8d9e03d3904d59592ad685659c1d6/src/fonts/fontawesome-webfont-subset.woff2
--------------------------------------------------------------------------------
/src/fonts/opensans-bold.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Invoicebus/html-invoice-generator/e1a2060d76c8d9e03d3904d59592ad685659c1d6/src/fonts/opensans-bold.eot
--------------------------------------------------------------------------------
/src/fonts/opensans-bold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Invoicebus/html-invoice-generator/e1a2060d76c8d9e03d3904d59592ad685659c1d6/src/fonts/opensans-bold.otf
--------------------------------------------------------------------------------
/src/fonts/opensans-bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Invoicebus/html-invoice-generator/e1a2060d76c8d9e03d3904d59592ad685659c1d6/src/fonts/opensans-bold.ttf
--------------------------------------------------------------------------------
/src/fonts/opensans-bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Invoicebus/html-invoice-generator/e1a2060d76c8d9e03d3904d59592ad685659c1d6/src/fonts/opensans-bold.woff
--------------------------------------------------------------------------------
/src/fonts/opensans-bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Invoicebus/html-invoice-generator/e1a2060d76c8d9e03d3904d59592ad685659c1d6/src/fonts/opensans-bold.woff2
--------------------------------------------------------------------------------
/src/fonts/opensans-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Invoicebus/html-invoice-generator/e1a2060d76c8d9e03d3904d59592ad685659c1d6/src/fonts/opensans-regular.eot
--------------------------------------------------------------------------------
/src/fonts/opensans-regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Invoicebus/html-invoice-generator/e1a2060d76c8d9e03d3904d59592ad685659c1d6/src/fonts/opensans-regular.otf
--------------------------------------------------------------------------------
/src/fonts/opensans-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Invoicebus/html-invoice-generator/e1a2060d76c8d9e03d3904d59592ad685659c1d6/src/fonts/opensans-regular.ttf
--------------------------------------------------------------------------------
/src/fonts/opensans-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Invoicebus/html-invoice-generator/e1a2060d76c8d9e03d3904d59592ad685659c1d6/src/fonts/opensans-regular.woff
--------------------------------------------------------------------------------
/src/fonts/opensans-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Invoicebus/html-invoice-generator/e1a2060d76c8d9e03d3904d59592ad685659c1d6/src/fonts/opensans-regular.woff2
--------------------------------------------------------------------------------
/src/js/bootstrap3-typeahead.js:
--------------------------------------------------------------------------------
1 | /* =============================================================
2 | * bootstrap3-typeahead.js v3.0.3
3 | * https://github.com/bassjobsen/Bootstrap-3-Typeahead
4 | * =============================================================
5 | * Original written by @mdo and @fat
6 | * =============================================================
7 | * Copyright 2014 Bass Jobsen @bassjobsen
8 | *
9 | * Licensed under the Apache License, Version 2.0 (the "License");
10 | * you may not use this file except in compliance with the License.
11 | * You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | * ============================================================ */
21 |
22 | var ib_loadBootstrapTypeahead = function() {
23 |
24 | "use strict";
25 | // jshint laxcomma: true
26 |
27 | /* TYPEAHEAD PUBLIC CLASS DEFINITION
28 | * ================================= */
29 |
30 | var Typeahead = function (element, options) {
31 | this.$element = $(element);
32 | this.options = $.extend({}, $.fn.typeahead.defaults, options);
33 | this.matcher = this.options.matcher || this.matcher;
34 | this.sorter = this.options.sorter || this.sorter;
35 | this.select = this.options.select || this.select;
36 | this.autoSelect = typeof this.options.autoSelect == 'boolean' ? this.options.autoSelect : true;
37 | this.highlighter = this.options.highlighter || this.highlighter;
38 | this.updater = this.options.updater || this.updater;
39 | this.source = this.options.source;
40 | this.delay = typeof this.options.delay == 'number' ? this.options.delay : 250;
41 | this.$menu = $(this.options.menu);
42 | this.shown = false;
43 | this.listen();
44 | this.showHintOnFocus = typeof this.options.showHintOnFocus == 'boolean' ? this.options.showHintOnFocus : false;
45 | };
46 |
47 | Typeahead.prototype = {
48 |
49 | constructor: Typeahead,
50 |
51 | select: function () {
52 | var val = this.$menu.find('.active').data('value');
53 | if(this.autoSelect || val) {
54 | this.$element
55 | .text(this.updater(val))
56 | .change();
57 | }
58 | return this.hide();
59 | },
60 |
61 | updater: function (item) {
62 | return item;
63 | },
64 |
65 | setSource: function (source) {
66 | this.source = source;
67 | },
68 |
69 | show: function () {
70 | var pos = $.extend({}, this.$element.offset(), {
71 | height: this.$element[0].offsetHeight
72 | }), scrollHeight;
73 |
74 | scrollHeight = typeof this.options.scrollHeight == 'function' ?
75 | this.options.scrollHeight.call() :
76 | this.options.scrollHeight;
77 |
78 | this.$menu
79 | //.insertAfter(this.$element)
80 | .appendTo(document.body)
81 | .css({
82 | top: pos.top + pos.height + scrollHeight,
83 | left: pos.left
84 | })
85 | .show();
86 |
87 | this.shown = true;
88 | return this;
89 | },
90 |
91 | hide: function () {
92 | this.$menu.hide();
93 | this.shown = false;
94 | return this;
95 | },
96 |
97 | lookup: function (query) {
98 | var items;
99 | if (typeof(query) != 'undefined' && query !== null) {
100 | this.query = query;
101 | } else {
102 | this.query = this.$element.text() || '';
103 | }
104 |
105 | if (this.query.length < this.options.minLength) {
106 | return this.shown ? this.hide() : this;
107 | }
108 |
109 | var worker = $.proxy(function() {
110 | items = $.isFunction(this.source) ? this.source(this.query, $.proxy(this.process, this)) : this.source;
111 | if (items) {
112 | this.process(items);
113 | }
114 | }, this);
115 |
116 | clearTimeout(this.lookupWorker);
117 | this.lookupWorker = setTimeout(worker, this.delay);
118 | },
119 |
120 | process: function (items) {
121 | var that = this;
122 |
123 | items = $.grep(items, function (item) {
124 | return that.matcher(item);
125 | });
126 |
127 | items = this.sorter(items);
128 |
129 | if (!items.length) {
130 | return this.shown ? this.hide() : this;
131 | }
132 |
133 | if (this.options.items == 'all') {
134 | return this.render(items).show();
135 | } else {
136 | return this.render(items.slice(0, this.options.items)).show();
137 | }
138 | },
139 |
140 | matcher: function (item) {
141 | return ~item.toLowerCase().indexOf(this.query.toLowerCase());
142 | },
143 |
144 | sorter: function (items) {
145 | var beginswith = [],
146 | caseSensitive = [],
147 | caseInsensitive = [],
148 | item;
149 |
150 | while ((item = items.shift())) {
151 | if (!item.toLowerCase().indexOf(this.query.toLowerCase())) beginswith.push(item);
152 | else if (~item.indexOf(this.query)) caseSensitive.push(item);
153 | else caseInsensitive.push(item);
154 | }
155 |
156 | return beginswith.concat(caseSensitive, caseInsensitive);
157 | },
158 |
159 | highlighter: function (item) {
160 | var query = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, '\\$&');
161 | return item.replace(new RegExp('(' + query + ')', 'ig'), function ($1, match) {
162 | return '' + match + '';
163 | });
164 | },
165 |
166 | render: function (items) {
167 | var that = this;
168 |
169 | items = $(items).map(function (i, item) {
170 | i = $(that.options.item).data('value', item);
171 | i.find('a').html(that.highlighter(item));
172 | return i[0];
173 | });
174 |
175 | if (this.autoSelect) {
176 | items.first().addClass('active');
177 | }
178 | this.$menu.html(items);
179 | return this;
180 | },
181 |
182 | next: function (event) {
183 | var active = this.$menu.find('.active').removeClass('active'),
184 | next = active.next();
185 |
186 | if (!next.length) {
187 | next = $(this.$menu.find('li')[0]);
188 | }
189 |
190 | next.addClass('active');
191 | },
192 |
193 | prev: function (event) {
194 | var active = this.$menu.find('.active').removeClass('active'),
195 | prev = active.prev();
196 |
197 | if (!prev.length) {
198 | prev = this.$menu.find('li').last();
199 | }
200 |
201 | prev.addClass('active');
202 | },
203 |
204 | listen: function () {
205 | this.$element
206 | .on('focus', $.proxy(this.focus, this))
207 | .on('blur', $.proxy(this.blur, this))
208 | .on('keypress', $.proxy(this.keypress, this))
209 | .on('keyup', $.proxy(this.keyup, this));
210 |
211 | if (this.eventSupported('keydown')) {
212 | this.$element.on('keydown', $.proxy(this.keydown, this));
213 | }
214 |
215 | this.$menu
216 | .on('click', $.proxy(this.click, this))
217 | .on('mouseenter', 'li', $.proxy(this.mouseenter, this))
218 | .on('mouseleave', 'li', $.proxy(this.mouseleave, this));
219 | },
220 |
221 | destroy : function () {
222 | this.$element.data('typeahead',null);
223 | this.$element
224 | .off('focus')
225 | .off('blur')
226 | .off('keypress')
227 | .off('keyup');
228 |
229 | if (this.eventSupported('keydown')) {
230 | this.$element.off('keydown');
231 | }
232 |
233 | this.$menu.remove();
234 | },
235 |
236 | eventSupported: function(eventName) {
237 | var isSupported = eventName in this.$element;
238 | if (!isSupported) {
239 | this.$element.setAttribute(eventName, 'return;');
240 | isSupported = typeof this.$element[eventName] === 'function';
241 | }
242 | return isSupported;
243 | },
244 |
245 | move: function (e) {
246 | if (!this.shown) return;
247 |
248 | switch(e.keyCode) {
249 | case 9: // tab
250 | case 13: // enter
251 | case 27: // escape
252 | e.preventDefault();
253 | break;
254 |
255 | case 38: // up arrow
256 | e.preventDefault();
257 | this.prev();
258 | break;
259 |
260 | case 40: // down arrow
261 | e.preventDefault();
262 | this.next();
263 | break;
264 | }
265 |
266 | e.stopPropagation();
267 | },
268 |
269 | keydown: function (e) {
270 | this.suppressKeyPressRepeat = ~$.inArray(e.keyCode, [40,38,9,13,27]);
271 | if (!this.shown && e.keyCode == 40) {
272 | this.lookup("");
273 | } else {
274 | this.move(e);
275 | }
276 | },
277 |
278 | keypress: function (e) {
279 | if (this.suppressKeyPressRepeat) return;
280 | this.move(e);
281 | },
282 |
283 | keyup: function (e) {
284 | switch(e.keyCode) {
285 | case 40: // down arrow
286 | case 38: // up arrow
287 | case 16: // shift
288 | case 17: // ctrl
289 | case 18: // alt
290 | break;
291 |
292 | case 9: // tab
293 | case 13: // enter
294 | if (!this.shown) return;
295 | this.select();
296 | break;
297 |
298 | case 27: // escape
299 | if (!this.shown) return;
300 | this.hide();
301 | break;
302 | default:
303 | this.lookup();
304 | }
305 |
306 | e.stopPropagation();
307 | e.preventDefault();
308 | },
309 |
310 | focus: function (e) {
311 | if (!this.focused) {
312 | this.focused = true;
313 | if (this.options.minLength === 0 && !this.$element.text() || this.options.showHintOnFocus) {
314 | this.lookup();
315 | }
316 | }
317 | },
318 |
319 | blur: function (e) {
320 | this.focused = false;
321 | if (!this.mousedover && this.shown) this.hide();
322 | },
323 |
324 | click: function (e) {
325 | e.stopPropagation();
326 | e.preventDefault();
327 | this.select();
328 | this.$element.focus();
329 | },
330 |
331 | mouseenter: function (e) {
332 | this.mousedover = true;
333 | this.$menu.find('.active').removeClass('active');
334 | $(e.currentTarget).addClass('active');
335 | },
336 |
337 | mouseleave: function (e) {
338 | this.mousedover = false;
339 | if (!this.focused && this.shown) this.hide();
340 | }
341 |
342 | };
343 |
344 | /* TYPEAHEAD PLUGIN DEFINITION
345 | * =========================== */
346 |
347 | var old = $.fn.typeahead;
348 |
349 | $.fn.typeahead = function (option) {
350 | var arg = arguments;
351 | return this.each(function () {
352 | var $this = $(this),
353 | data = $this.data('typeahead'),
354 | options = typeof option == 'object' && option;
355 | if (!data) $this.data('typeahead', (data = new Typeahead(this, options)));
356 | if (typeof option == 'string') {
357 | if (arg.length > 1) {
358 | data[option].apply(data, Array.prototype.slice.call(arg ,1));
359 | } else {
360 | data[option]();
361 | }
362 | }
363 | });
364 | };
365 |
366 | $.fn.typeahead.defaults = {
367 | source: [],
368 | items: 8,
369 | menu: '