Koha/koha-tmpl/intranet-tmpl/lib/greybox/GreyBox_v5_5/combiner.py
Owen Leonard 3b4fd63d11 Bug 12101 - Move Greybox library outside of language-specific directory
This patch moves the Greybox library to intranet-tmpl/lib so that it is
not duplicated for each set of translated templates. The Greybox library
files are called directly only by one include file, greybox.inc, which
is modified by this patch.

To test, apply the patch and view any page which calls the Greybox
library and confirm that modal windows are still generated correctly.

For instance, Cataloging -> Cataloging search, click the "Preview MARC"
link.

Signed-off-by: David Cook <dcook@prosentient.com.au>

Works as described.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
2014-04-25 15:14:03 +00:00

134 lines
3.7 KiB
Python

#!/usr/bin/env python
"""
Used to combine the different parts of GreyBox.
- Python 2.4 required
- Java 1.4+ required
- Dojo's JavaScript compressor (http://dojotoolkit.org/docs/compressor_system.html). Place it under compression_lib/custom_rhino.jar
"""
import os, sys, shutil
from compression_lib import AJS_minify
if __name__ == '__main__':
args = sys.argv
if len(args) < 2:
print """
Usage is:
python combiner.py [full|gallery|window]
Example usage:
python combiner.py full
The files will be store in greybox_dist/* depending on the dist. type
"""
sys.exit(0)
type = args[1]
output_dir = 'greybox'
##
# Config file list
#
js = []
css = []
static = []
append = lambda l, x: l.append('greybox_source/%s' % x)
def appendBase():
append(js, 'base/base.js')
append(js, 'auto_deco.js')
append(css, 'base/base.css')
append(static, 'base/indicator.gif')
append(static, 'base/loader_frame.html')
def appendSet():
append(js, 'set/set.js')
append(css, 'set/set.css')
append(static, 'set/next.gif')
append(static, 'set/prev.gif')
def appendGallery():
append(js, 'gallery/gallery.js')
append(css, 'gallery/gallery.css')
append(static, 'gallery/g_close.gif')
def appendWindow():
append(js, 'window/window.js')
append(css, 'window/window.css')
append(static, 'window/header_bg.gif')
append(static, 'window/w_close.gif')
appendBase()
if type == 'full':
appendGallery()
appendSet()
appendWindow()
elif type == 'gallery':
appendGallery()
appendSet()
elif type == 'window':
appendWindow()
else:
sys.exit('Uknown type')
print 'Follwoing styles are used:'
for style in css:
print ' %s' % style
print 'Follwoing JavaScript is used:'
for script in js:
print ' %s' % script
##
# Copy the files
#
try:
shutil.rmtree(output_dir)
except:
pass
os.mkdir(output_dir)
def concatFiles(f_list):
data = []
for f in f_list:
data.append(open(f, 'r').read())
return '\n\n'.join(data)
def copyFiles(f_list):
for f in f_list:
shutil.copy(f, output_dir)
copyFiles(static)
fp = open('%s/%s' % (output_dir, 'gb_styles.css'), 'w')
fp.write(concatFiles(css))
fp.close()
print 'Compressed styles in %s' % ('greybox/gb_styles.css')
##
# Concat js
#
fp = open('%s/%s' % (output_dir, 'gb_scripts_tmp.js'), 'w')
fp.write(concatFiles(js))
fp.close()
AJS_minify.AJS_SRC = 'greybox_source/base/AJS.js'
AJS_minify.AJS_MINI_SRC = 'greybox/AJS_tmp.js'
files = ['greybox/gb_scripts_tmp.js', 'greybox_source/base/AJS_fx.js', 'static_files/help.js']
code_analyzer = AJS_minify.ExternalCodeAnalyzer(files)
composer = AJS_minify.AjsComposer(code_analyzer.findFunctions())
composer.writeToOutput()
os.popen('java -jar compression_lib/custom_rhino.jar -c greybox/AJS_tmp.js > greybox/AJS.js')
os.remove('greybox/AJS_tmp.js')
os.popen('java -jar compression_lib/custom_rhino.jar -c greybox_source/base/AJS_fx.js > greybox/AJS_fx.js')
print 'Compressed AJS.js and AJS.js into greybox/'
os.popen('java -jar compression_lib/custom_rhino.jar -c greybox/gb_scripts_tmp.js > greybox/gb_scripts.js')
os.remove('greybox/gb_scripts_tmp.js')
print 'Compressed JavaScript in %s' % ('greybox/gb_scripts.css')
#Append script_loaded
open('greybox/AJS.js', 'a').write('\nscript_loaded=true;')
open('greybox/AJS_fx.js', 'a').write('\nscript_loaded=true;')
open('greybox/gb_scripts.js', 'a').write('\nscript_loaded=true;')