moved old print format code to a separte file

This commit is contained in:
Rushabh Mehta 2014-07-22 16:13:13 +05:30 committed by Anand Doshi
parent 8b259b2be2
commit cc63bde2a8
6 changed files with 23 additions and 161 deletions

View file

@ -11,11 +11,11 @@ Build the `public` folders and setup languages
import os, sys, frappe, json, shutil
from cssmin import cssmin
def bundle(no_compress, make_copy=False):
def bundle(no_compress, make_copy=False, verbose=False):
"""concat / minify js files"""
# build js files
make_asset_dirs(make_copy=make_copy)
build(no_compress)
build(no_compress, verbose)
def watch(no_compress):
"""watch and rebuild if necessary"""
@ -49,11 +49,11 @@ def make_asset_dirs(make_copy=False):
else:
os.symlink(os.path.abspath(source), target)
def build(no_compress=False):
def build(no_compress=False, verbose=False):
assets_path = os.path.join(frappe.local.sites_path, "assets")
for target, sources in get_build_maps().iteritems():
pack(os.path.join(assets_path, target), sources, no_compress)
pack(os.path.join(assets_path, target), sources, no_compress, verbose)
shutil.copy(os.path.join(os.path.dirname(os.path.abspath(frappe.__file__)), 'data', 'languages.txt'), frappe.local.sites_path)
# reset_app_html()
@ -89,7 +89,7 @@ def get_build_maps():
timestamps = {}
def pack(target, sources, no_compress):
def pack(target, sources, no_compress, verbose):
from cStringIO import StringIO
outtype, outtxt = target.split(".")[-1], ''
@ -109,7 +109,11 @@ def pack(target, sources, no_compress):
if outtype=="js" and extn=="js" and (not no_compress) and suffix!="concat" and (".min." not in f):
tmpin, tmpout = StringIO(data.encode('utf-8')), StringIO()
jsm.minify(tmpin, tmpout)
outtxt += unicode(tmpout.getvalue() or '', 'utf-8').strip('\n') + ';'
minified = tmpout.getvalue()
outtxt += unicode(minified or '', 'utf-8').strip('\n') + ';'
if verbose:
print "{0}: {1}k".format(f, int(len(minified) / 1024))
elif outtype=="js" and extn=="html":
# add to frappe.templates
content = data.replace("\n", " ").replace("'", "\'")

View file

@ -464,10 +464,10 @@ def reload_doc(module, doctype, docname, force=False):
frappe.destroy()
@cmd
def build(make_copy=False):
def build(make_copy=False, verbose=False):
import frappe.build
import frappe
frappe.build.bundle(False, make_copy=make_copy)
frappe.build.bundle(False, make_copy=make_copy, verbose=verbose)
@cmd
def watch():

View file

@ -74,7 +74,6 @@
"public/js/legacy/datatype.js",
"public/js/legacy/dom.js",
"public/js/legacy/handler.js",
"public/js/legacy/printElement.js",
"public/js/legacy/loaders.js",
"public/js/frappe/ui/appframe.js",
@ -120,8 +119,6 @@
"public/js/frappe/views/test_runner.js",
"public/js/frappe/form/formatters.js",
"public/js/legacy/layout.js",
"public/js/frappe/ui/toolbar/selector_dialog.js",
"public/js/frappe/ui/toolbar/new.js",
"public/js/frappe/ui/toolbar/search.js",
@ -133,7 +130,6 @@
"public/js/frappe/ui/editor.js",
"public/js/legacy/form.js",
"public/js/legacy/print_format.js",
"public/js/legacy/clientscriptAPI.js",
"public/js/frappe/form/toolbar.js",
@ -150,8 +146,12 @@
"public/js/frappe/form/linked_with.js",
"public/js/frappe/form/workflow.js",
"public/js/frappe/form/assign_to.js",
"public/js/frappe/form/print.js",
"public/js/frappe/print/print_table.js"
"public/js/frappe/form/print.js"
],
"js/print_format_v3.min.js": [
"public/js/legacy/layout.js",
"public/js/legacy/print_table.js",
"public/js/legacy/print_format.js"
],
"js/slickgrid.min.js": [
"public/js/lib/slickgrid/jquery.event.drag.js",

View file

@ -103,6 +103,7 @@ frappe.ui.form.PrintPreview = Class.extend({
},
preview_old_style: function() {
var me = this;
frappe.require("/assets/js/print_format_v3.min.js");
_p.build(me.print_sel.val(), function(html) {
me.wrapper.find(".print-format").html('<div class="alert alert-warning">'
+__("Warning: This Print Format is in old style and cannot be generated via the API.")
@ -111,10 +112,12 @@ frappe.ui.form.PrintPreview = Class.extend({
}, !this.with_letterhead(), true, true);
},
print_old_style: function() {
frappe.require("/assets/js/print_format_v3.min.js");
_p.build(this.print_sel.val(), _p.go,
!this.with_letterhead());
},
new_page_preview_old_style: function() {
frappe.require("/assets/js/print_format_v3.min.js");
_p.build(this.print_sel.val(), _p.preview,
!this.with_letterhead());
},

View file

@ -1,133 +0,0 @@
/// <reference path="http://code.jquery.com/jquery-1.4.1-vsdoc.js" />
/*
* Print Element Plugin 1.2
*
* Copyright (c) 2010 Erik Zaadi
*
* Inspired by PrintArea (http://plugins.jquery.com/project/PrintArea) and
* http://stackoverflow.com/questions/472951/how-do-i-print-an-iframe-from-javascript-in-safari-chrome
*
* Home Page : http://projects.erikzaadi/jQueryPlugins/jQuery.printElement
* Issues (bug reporting) : http://github.com/erikzaadi/jQueryPlugins/issues/labels/printElement
* jQuery plugin page : http://plugins.jquery.com/project/printElement
*
* Thanks to David B (http://github.com/ungenio) and icgJohn (http://www.blogger.com/profile/11881116857076484100)
* For their great contributions!
*
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
* Note, Iframe Printing is not supported in Opera and Chrome 3.0, a popup window will be shown instead
*/
; (function (window, undefined) {
var document = window["document"];
var $ = window["jQuery"];
$.fn["printElement"] = function (options) {
var mainOptions = $.extend({}, $.fn["printElement"]["defaults"], options);
//Remove previously printed iframe if exists
$("[id^='printElement_']").remove();
return this.each(function () {
//Support Metadata Plug-in if available
var opts = $.meta ? $.extend({}, mainOptions, $(this).data()) : mainOptions;
_printElement($(this), opts);
});
};
$.fn["printElement"]["defaults"] = {
"printMode": 'iframe', //Usage : iframe / popup
"pageTitle": '', //Print Page Title
"overrideElementCSS": null,
/* Can be one of the following 3 options:
* 1 : boolean (pass true for stripping all css linked)
* 2 : array of $.fn.printElement.cssElement (s)
* 3 : array of strings with paths to alternate css files (optimized for print)
*/
"printBodyOptions": {
"styleToAdd": 'padding:10px;margin:10px;', //style attributes to add to the body of print document
"classNameToAdd": '' //css class to add to the body of print document
},
"leaveOpen": false, // in case of popup, leave the print page open or not
"iframeElementOptions": {
"styleToAdd": 'border:none;position:absolute;width:0px;height:0px;bottom:0px;left:0px;', //style attributes to add to the iframe element
"classNameToAdd": '' //css class to add to the iframe element
}
};
$.fn["printElement"]["cssElement"] = {
"href": '',
"media": ''
};
function _printElement(element, opts) {
//Create markup to be printed
var html = _getMarkup(element, opts);
var popupOrIframe = null;
var documentToWriteTo = null;
if (opts["printMode"].toLowerCase() == 'popup') {
popupOrIframe = window.open('about:blank', 'printElementWindow', 'width=650,height=440,scrollbars=yes');
documentToWriteTo = popupOrIframe.document;
}
else {
//The random ID is to overcome a safari bug http://www.cjboco.com.sharedcopy.com/post.cfm/442dc92cd1c0ca10a5c35210b8166882.html
var printElementID = "printElement_" + (Math.round(Math.random() * 99999)).toString();
//Native creation of the element is faster..
var iframe = document.createElement('IFRAME');
$(iframe).attr({
style: opts["iframeElementOptions"]["styleToAdd"],
id: printElementID,
className: opts["iframeElementOptions"]["classNameToAdd"],
frameBorder: 0,
scrolling: 'no',
src: 'about:blank'
});
document.body.appendChild(iframe);
documentToWriteTo = (iframe.contentWindow || iframe.contentDocument);
if (documentToWriteTo.document)
documentToWriteTo = documentToWriteTo.document;
iframe = document.frames ? document.frames[printElementID] : document.getElementById(printElementID);
popupOrIframe = iframe.contentWindow || iframe;
}
focus();
documentToWriteTo.open();
documentToWriteTo.write(html);
documentToWriteTo.close();
_callPrint(popupOrIframe);
};
function _callPrint(element) {
if (element && element["printPage"])
element["printPage"]();
else
setTimeout(function () {
_callPrint(element);
}, 50);
}
function _getElementHTMLIncludingFormElements(element) {
var $element = $(element);
var elementHtml = $('<div></div>').append($element.clone()).html();
return elementHtml;
}
function _getBaseHref() {
var port = (window.location.port) ? ':' + window.location.port : '';
return window.location.protocol + '//' + window.location.hostname + port + window.location.pathname;
}
function _getMarkup(element, opts) {
var $element = $(element);
var elementHtml = _getElementHTMLIncludingFormElements(element);
var html = new Array();
html.push('<html><head><title>' + opts["pageTitle"] + '</title>');
//Ensure that relative links work
html.push('<base href="' + _getBaseHref() + '" />');
html.push('</head><body style="' + opts["printBodyOptions"]["styleToAdd"] + '" class="' + opts["printBodyOptions"]["classNameToAdd"] + '">');
html.push('<div class="' + $element.attr('class') + '">' + elementHtml + '</div>');
html.push('<script type="text/javascript">function printPage(){focus();print();'
+ ((!opts["leaveOpen"] && opts["printMode"].toLowerCase() == 'popup') ? 'close();' : '') + '}</script>');
html.push('</body></html>');
return html.join('');
};
})(window);

View file

@ -1,16 +1,4 @@
// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
// MIT License. See license.txt
frappe.provide("frappe.print");
// opts:
// doctype (parent)
// docname
// tabletype
// fieldname
// show_all = false;
frappe.print.Table = Class.extend({
frappe.printTable = Class.extend({
init: function(opts) {
$.extend(this, opts);
if(!this.columns)
@ -205,7 +193,7 @@ frappe.print.Table = Class.extend({
})
function print_table(dt, dn, fieldname, tabletype, cols, head_labels, widths, condition, cssClass, modifier) {
return new frappe.print.Table({
return new frappe.printTable({
doctype: dt,
docname: dn,
fieldname: fieldname,