Pārlūkot izejas kodu

version 2

version-14
Rushabh Mehta pirms 13 gadiem
vecāks
revīzija
f253fa8e0b
100 mainītis faili ar 29 papildinājumiem un 1178 dzēšanām
  1. +2
    -13
      INSTALL.md
  2. +0
    -1
      README
  3. +23
    -0
      README.md
  4. +0
    -39
      blank.html
  5. +0
    -0
      blank1.html
  6. +0
    -24
      cgi-bin/backupall.py
  7. +0
    -73
      cgi-bin/compilejs.py
  8. +0
    -1
      cgi-bin/core/module.info
  9. +0
    -98
      cgi-bin/get_module_js.cgi
  10. +0
    -82
      cgi-bin/getfile.cgi
  11. +0
    -72
      cgi-bin/getjsfile.cgi
  12. +0
    -35
      cgi-bin/pypi-setup.py
  13. +0
    -425
      compress.py
  14. +0
    -0
      conf/sitemap.xml
  15. +0
    -0
      css/legacy/autosuggest.css
  16. +0
    -0
      css/legacy/body.css
  17. +1
    -1
      css/legacy/bw-icons.css
  18. +0
    -0
      css/legacy/calendar.css
  19. +2
    -58
      css/legacy/default.css
  20. +0
    -0
      css/legacy/dialog.css
  21. +0
    -0
      css/legacy/doc_column_view.css
  22. +0
    -0
      css/legacy/forms.css
  23. +0
    -0
      css/legacy/grid.css
  24. +0
    -0
      css/legacy/images/ui-bg_flat_0_aaaaaa_40x100.png
  25. +0
    -0
      css/legacy/images/ui-bg_flat_75_ffffff_40x100.png
  26. +0
    -0
      css/legacy/images/ui-bg_glass_55_fbf9ee_1x400.png
  27. +0
    -0
      css/legacy/images/ui-bg_glass_95_fef1ec_1x400.png
  28. +0
    -0
      css/legacy/images/ui-bg_highlight-hard_65_ffffff_1x100.png
  29. +0
    -0
      css/legacy/images/ui-bg_highlight-hard_75_dadada_1x100.png
  30. +0
    -0
      css/legacy/images/ui-bg_highlight-hard_75_e6e6e6_1x100.png
  31. +0
    -0
      css/legacy/images/ui-bg_highlight-soft_75_cccccc_1x100.png
  32. +0
    -0
      css/legacy/images/ui-icons_222222_256x240.png
  33. +0
    -0
      css/legacy/images/ui-icons_2e83ff_256x240.png
  34. +0
    -0
      css/legacy/images/ui-icons_454545_256x240.png
  35. +0
    -0
      css/legacy/images/ui-icons_888888_256x240.png
  36. +0
    -0
      css/legacy/images/ui-icons_cd0a0a_256x240.png
  37. +0
    -0
      css/legacy/jqplot.css
  38. +0
    -0
      css/legacy/jquery-ui.css
  39. +0
    -0
      css/legacy/listing.css
  40. +0
    -0
      css/legacy/menus.css
  41. +0
    -0
      css/legacy/messages.css
  42. +0
    -0
      css/legacy/report.css
  43. +0
    -0
      css/legacy/sidebar.css
  44. +0
    -0
      css/legacy/tabs.css
  45. +0
    -0
      css/legacy/user.css
  46. +1
    -22
      css/legacy/wntoolbar.css
  47. +0
    -234
      data/Framework.sql
  48. Binārs
      images/icons/Accounts.gif
  49. Binārs
      images/icons/Accounts.png
  50. Binārs
      images/icons/Analysis.gif
  51. Binārs
      images/icons/Analysis.png
  52. Binārs
      images/icons/Buying.gif
  53. Binārs
      images/icons/Buying.png
  54. Binārs
      images/icons/HR.gif
  55. Binārs
      images/icons/HR.png
  56. Binārs
      images/icons/Home.gif
  57. Binārs
      images/icons/Home.png
  58. Binārs
      images/icons/Maintenance.gif
  59. Binārs
      images/icons/Maintenance.png
  60. Binārs
      images/icons/Production.gif
  61. Binārs
      images/icons/Production.png
  62. Binārs
      images/icons/Projects.gif
  63. Binārs
      images/icons/Projects.png
  64. Binārs
      images/icons/Selling.gif
  65. Binārs
      images/icons/Selling.png
  66. Binārs
      images/icons/Setup.gif
  67. Binārs
      images/icons/Setup.png
  68. Binārs
      images/icons/Stock.gif
  69. Binārs
      images/icons/Stock.png
  70. Binārs
      images/icons/accept.gif
  71. Binārs
      images/icons/accept.png
  72. Binārs
      images/icons/add.gif
  73. Binārs
      images/icons/add.png
  74. Binārs
      images/icons/anchor.png
  75. Binārs
      images/icons/application.gif
  76. Binārs
      images/icons/application.png
  77. Binārs
      images/icons/application_add.png
  78. Binārs
      images/icons/application_cascade.png
  79. Binārs
      images/icons/application_delete.png
  80. Binārs
      images/icons/application_double.png
  81. Binārs
      images/icons/application_form.png
  82. Binārs
      images/icons/application_go.png
  83. Binārs
      images/icons/application_side_list.png
  84. Binārs
      images/icons/application_side_tree.png
  85. Binārs
      images/icons/application_split.png
  86. Binārs
      images/icons/application_tile_horizontal.png
  87. Binārs
      images/icons/application_tile_vertical.png
  88. Binārs
      images/icons/application_view_columns.png
  89. Binārs
      images/icons/application_view_detail.png
  90. Binārs
      images/icons/application_view_tile.png
  91. Binārs
      images/icons/application_xp.png
  92. Binārs
      images/icons/application_xp_terminal.png
  93. Binārs
      images/icons/arrow_branch.png
  94. Binārs
      images/icons/arrow_divide.png
  95. Binārs
      images/icons/arrow_down.gif
  96. Binārs
      images/icons/arrow_down.png
  97. Binārs
      images/icons/arrow_in.png
  98. Binārs
      images/icons/arrow_inout.png
  99. Binārs
      images/icons/arrow_join.png
  100. Binārs
      images/icons/arrow_left.gif

INSTALL.txt → INSTALL.md Parādīt failu

@@ -3,8 +3,6 @@ INSTALL.txt

Web Notes Framework Installation guide

Web Notes Framework (WNF) is a meta-data driven web app framework. After install, you build
and configure your application from the web browser.

WNF requires the following applications

@@ -30,23 +28,14 @@ WNF requires the following applications
------------------------------------------------------------------------
2. Setup defs.py

The framework picks up the database details from cgi-bin/webnotes/defs.py
The framework picks up the database details from py/webnotes/defs.py
You need to edit this file and set your database name and other options
------------------------------------------------------------------------
3. Configuring Apache

a. You must set Apache to execute index.cgi file, one way to do this is to add cgi handler
and add ExecCGI in the options directive.

b. You can also add couple of lines below to block Apache from rendering .py files

RewriteEngine on
RewriteRule \.py - [F]

c. Add "index.cgi" to DirectoryIndex

see conf/apache.conf
------------------------------------------------------------------------
4. Login to application

+ 0
- 1
README Parādīt failu

@@ -1 +0,0 @@
Web Notes Framework: A web application framework with client-side and server-side libraries including metadata definition, forms, virtual pages- Ideal for developing js driven database apps.

+ 23
- 0
README.md Parādīt failu

@@ -0,0 +1,23 @@
## wnframework

wnframework is a full-stack web application framework that uses python/mysql on the server side. includes a tightly integrated client side library and uses many html5 featuers.

Projects: [erpnext](http://erpnext.org) | [webnotes/erpnext](https://github.com/webnotes/erpnext)

## Version

Version 2 is a radical reworking of the wnframework. This will be the current development version. For a stable version see -1.7 branches

#### Roadmap for version 2

- lazy loading + localstorage of js libs (completed)
- refactoring of js library
- separation of the view from the model

## Librarires

wnframework uses a number of libraries in the open domain, see attribution.md (it may not be a complete list but we are working on it!)

## License

wnframework is freely available to use under the MIT License

+ 0
- 39
blank.html Parādīt failu

@@ -1,39 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<!--
Copyright (c) 2007 Brian Dillard and Brad Neuberg:
Brian Dillard | Project Lead | bdillard@pathf.com | http://blogs.pathf.com/agileajax/
Brad Neuberg | Original Project Creator | http://codinginparadise.org

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files
(the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-->

<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<script language="JavaScript">
function pageLoaded() {
window.parent.dhtmlHistory.iframeLoaded(window.location);
document.getElementById("output").innerHTML = window.location;
}
</script>

</head>

<body onload="pageLoaded();" style="width:700px;padding:2px;margin:0;">

<p>blank.html - Needed for Internet Explorer's hidden iframe</p>
<p id="output"></p>

</body>
</html>

+ 0
- 0
blank1.html Parādīt failu


+ 0
- 24
cgi-bin/backupall.py Parādīt failu

@@ -1,24 +0,0 @@
import os

# go to current directory
os.chdir(__file__[:-12])

import webnotes.utils.backups

webnotes.utils.backups.backup_all()

# send the daily backup to the pair server
import webnotes.defs
if hasattr(webnotes.defs,'ps_host'):
import ftplib, time

ftp = ftplib.FTP(webnotes.defs.ps_host, webnotes.defs.ps_login, webnotes.defs.ps_pwd)
ftp.cwd('pair_backups')
fname = 'daily-' + time.strftime('%Y-%m-%d') + '.tar.gz'
f = open('/backups/daily/' + fname, 'rb')
ftp.storbinary('STOR ' + webnotes.defs.server_prefix + '-' + fname, f)
ftp.quit()
# delete from local pair directory
if hasattr(webnotes.defs, 'pair_dir') and len(os.listdir(webnotes.defs.pair_dir)) > 3:
delete_oldest_file(webnotes.defs.pair_dir)

+ 0
- 73
cgi-bin/compilejs.py Parādīt failu

@@ -1,73 +0,0 @@
class wnJSCompiler:
@staticmethod
def concate_files_in_dir(path,dest):
"""
Concatenates all files in a directory
"""
import os
allfiles = []
dirname = path
l = os.listdir(path)
for i in l:
if os.path.isfile(os.path.join(dirname,i)):
allfiles.append(os.path.join(dirname,i))
fout = open(dest,'w')
for filename in allfiles:
f = open(filename)
fout.write(f.read())
f.close
fout.close
@staticmethod
def getsubs(path):
"""
gets all the sub directories of a directory (recursive)
"""
import os
subs = []
for root, subd, files in os.walk(path):
for i in subd:
subs.append(os.path.join(root,i))
return subs
@staticmethod
def compilejs(path):
"""
Compiles the js tree for ondemand import
"""
if not wnJSCompiler.is_changed(path):
return

import os
import webnotes.utils.jsnamespace as jsn
subs = wnJSCompiler.getsubs(path)
for subdir in subs:
modname = jsn.jsNamespace.getmodname(subdir)
wnJSCompiler.concate_files_in_dir(subdir,os.path.join(subdir, modname))
wnJSCompiler.minifyjs(os.path.join(subdir, modname))

@staticmethod
def is_changed(path):
#compare new timestamps with the ones stored in file
from webnotes.utils import jstimestamp
try:
frm_file = jstimestamp.generateTimestamp.read_ts_from_file(path)
newts = jstimestamp.generateTimestamp.gents(path)
except IOError:
return True
if frm_file == newts:
return False
else:
return True


@staticmethod
def minifyjs(modpath):
"""
Stub to minify js
"""
pass

if __name__=="__main__":
a = wnJSCompiler()
print a.compilejs('../js/wn')

+ 0
- 1
cgi-bin/core/module.info Parādīt failu

@@ -1 +0,0 @@
{'update_date': '2011-03-18 18:12:06'}

+ 0
- 98
cgi-bin/get_module_js.cgi Parādīt failu

@@ -1,98 +0,0 @@
#!/usr/bin/python

import cgi
import datetime
import os

try:

form = cgi.FieldStorage()
out = ''
out_buf, str_out = '', ''
jsdir='../js'
jsonout= {}

# Traceback
# ---------
def getTraceback():
import sys, traceback, string
type, value, tb = sys.exc_info()
body = "Traceback (innermost last):\n"
list = traceback.format_tb(tb, None) \
+ traceback.format_exception_only(type, value)
body = body + "%-20s %s" % (string.join(list[:-1], ""), list[-1])
return body
def load_js_from_file(module_name):
global out
global jsonout
import webnotes.utils.jsnamespace as jsn
filename = jsn.jsNamespace.modname_to_filename(module_name,jsdir)
import os
try:
f = open(os.path.join(filename))
try:
out = f.read()
finally:
f.close()
except IOError,e:
out = "Not Found: %s" % filename
jsonout[module_name]=out
def load_js_module(module_name):
global jsonout
from webnotes import defs
devmode = getattr(defs,'developer_mode')
if devmode:
import compilejs
compilejs.wnJSCompiler.compilejs(jsdir)
if module_name not in jsonout:
dependent_mods = get_dependencies(module_name)
for module in dependent_mods:
load_js_from_file(module)
load_js_from_file(module_name)
def get_dependencies(module_name):
import webnotes.utils.jsdependency as jsd
ret = jsd.jsDependencyBuilder.build_dependency(jsdir,module_name)
return ret


def compress_string(buf):
import gzip, cStringIO
zbuf = cStringIO.StringIO()
zfile = gzip.GzipFile(mode = 'wb', fileobj = zbuf, compresslevel = 5)
zfile.write(buf)
zfile.close()
return zbuf.getvalue()

compress = 0
try:
if string.find(os.environ["HTTP_ACCEPT_ENCODING"], "gzip") != -1:
compress = 1
except:
pass
load_js_module(form.getvalue('module'))
#load_js_module('wn.modules')
if compress and len(out)>512:
out_buf = compress_string(str_out)
print "Content-Encoding: gzip"
print "Content-Length: %d" % (len(out_buf))
print "Content-Type: text/javascript"
# Headers end
print

if out_buf:
sys.stdout.write(out_buf)
elif out:
import json
print json.dumps(jsonout)

except Exception, e:
print "Content-Type: text/javascript"
print
print getTraceback()#.replace('\n','<br>')

+ 0
- 82
cgi-bin/getfile.cgi Parādīt failu

@@ -1,82 +0,0 @@
#!/usr/bin/python

try:

import sys, os
sys.path.append(os.getcwd()+'/cgi-bin')

def getTraceback():
import sys, traceback, string
type, value, tb = sys.exc_info()
body = "Traceback (innermost last):\n"
list = traceback.format_tb(tb, None) \
+ traceback.format_exception_only(type, value)
body = body + "%-20s %s" % (string.join(list[:-1], ""), list[-1])
return body

import cgi
import webnotes
import webnotes.auth
import webnotes.utils
import webnotes.utils.file_manager
import webnotes.db
import webnotes.defs
sys.path.append(webnotes.defs.modules_path)
form = cgi.FieldStorage()
webnotes.form_dict = {}
for each in form.keys():
webnotes.form_dict[each] = form.getvalue(each)
n = form.getvalue('name')

# authenticate
webnotes.auth.HTTPRequest()
# get file
res = webnotes.utils.file_manager.get_file(n)
fname = res[0]
if hasattr(res[1], 'tostring'):
fcontent = res[1].tostring()
else:
fcontent = res[1]

if form.getvalue('thumbnail'):
tn = webnotes.utils.cint(form.getvalue('thumbnail'))
try:
from PIL import Image
import cStringIO
fobj = cStringIO.StringIO(fcontent)
image = Image.open(fobj)
image.thumbnail((tn,tn*2), Image.ANTIALIAS)
outfile = cStringIO.StringIO()
if image.mode != "RGB":
image = image.convert("RGB")
image.save(outfile, 'JPEG')
outfile.seek(0)
fcontent = outfile.read()
except:
pass

import mimetypes
print "Content-Type: %s" % (mimetypes.guess_type(fname)[0] or 'application/unknown')
print "Content-Disposition: filename="+fname.replace(' ', '_')
print "Cache-Control: max-age=3600"
print
print fcontent
except Exception, e:
print "Content-Type: text/html"
try:
out = {'message':'', 'exc':getTraceback().replace('\n','<br>')}
except:
out = {'exc': e}
print
print str(out)

+ 0
- 72
cgi-bin/getjsfile.cgi Parādīt failu

@@ -1,72 +0,0 @@
#!/usr/bin/python

import cgi
import datetime
import os

try:

form = cgi.FieldStorage()
out = ''
out_buf, str_out = '', ''

# Traceback
# ---------
def getTraceback():
import sys, traceback, string
type, value, tb = sys.exc_info()
body = "Traceback (innermost last):\n"
list = traceback.format_tb(tb, None) \
+ traceback.format_exception_only(type, value)
body = body + "%-20s %s" % (string.join(list[:-1], ""), list[-1])
return body
def load_js_file():
global out
filename = form.getvalue('filename')
import os
try:
f = open(os.path.join('../js/', filename))
try:
out = f.read()
finally:
f.close()
except IOError,e:
out = "Not Found: %s" % filename

def compress_string(buf):
import gzip, cStringIO
zbuf = cStringIO.StringIO()
zfile = gzip.GzipFile(mode = 'wb', fileobj = zbuf, compresslevel = 5)
zfile.write(buf)
zfile.close()
return zbuf.getvalue()

compress = 0
try:
if string.find(os.environ["HTTP_ACCEPT_ENCODING"], "gzip") != -1:
compress = 1
except:
pass
load_js_file()
if compress and len(out)>512:
out_buf = compress_string(str_out)
print "Content-Encoding: gzip"
print "Content-Length: %d" % (len(out_buf))
print "Content-Type: text/javascript"
# Headers end
print

if out_buf:
sys.stdout.write(out_buf)
elif out:
print out

except Exception, e:
print "Content-Type: text/javascript"
print
print getTraceback().replace('\n','<br>')

+ 0
- 35
cgi-bin/pypi-setup.py Parādīt failu

@@ -1,35 +0,0 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-

# Script for creating the pypi packages
# Works only for python 2.6+


import os

try:
from setuptools import setup, find_packages
except ImportError:
import ez_setup
ez_setup.use_setuptools()
from setuptools import setup, find_packages

# Startup
appname = "webnotes-core"
appversion = "v170"

setup(
name = appname,
version = appversion,
author = "Rushabh Mehta",
namespace_packages = ["webnotes"],
packages = ["webnotes"] + [ os.path.join("webnotes", a) for a in find_packages("webnotes") ],
author_email = "rmehta@gmail.com",
description = "A meta-data based library for creating web apps in python and javascript",
license = "MIT",
keywords = "Meta-data web app framework python",
url = "http://code.google.com/p/webnotes/",
classifiers = ["License :: OSI Approved :: MIT License","Topic :: Software Development :: Libraries :: Python Modules"],
long_description = "Webnotes is a meta-data based framework for web applications in python",
)


+ 0
- 425
compress.py Parādīt failu

@@ -1,425 +0,0 @@
in_files_main = [
'utils/rsh.compressed.js'
,'globals.js'
,'utils/datatype.js'
,'utils/browser_detect.js'
,'utils/datetime.js'
,'utils/dom.js'
,'utils/handler.js'
,'utils/msgprint.js'
,'utils/json.js'
,'utils/shortcut.js'
,'utils/printElement.js'
,'wn/widgets/dialog.js'
,'widgets/dialog.js'
,'widgets/listing.js'
,'wn/widgets/listing.js'
,'widgets/tree.js'
,'widgets/menu.js'
,'widgets/layout.js'
,'widgets/tabbedpage.js'
,'webpage/page_header.js'
,'widgets/autosuggest.js'
,'widgets/select.js'
,'widgets/tags.js'
,'widgets/export_query.js'
,'widgets/list_selector.js'
,'widgets/form/fields.js'
,'webpage/wntoolbar.js'
,'webpage/history.js'
,'webpage/search.js'
,'webpage/spinner.js'
,'webpage/freeze_page.js'
,'webpage/error_console.js'
,'webpage/about.js'
,'webpage/loaders.js'
,'webpage/uploader.js'
,'webpage/page.js'
,'webpage/docbrowser.js'
,'wn/page_layout.js'
#,'wn/widgets/doc_column_view.js'
,'wn/widgets/page_sidebar.js'
,'wn/widgets/footer.js'
#,'wn/widgets/follow.js'
,'model/local_data.js'
,'model/doclist.js'
,'webpage/body.js'
,'app.js'
,'widgets/calendar.js'
]

out_file_main = 'js/wnf.compressed.js'

#-------------------------------------------------

in_files_lite = [
'utils/rsh.compressed.js'
,'globals.js'
,'utils/datatype.js'
,'utils/browser_detect.js'
,'utils/datetime.js'
,'utils/dom.js'
,'utils/handler.js'
,'utils/msgprint.js'
,'utils/json.js'
,'wn/widgets/dialog.js'
,'widgets/dialog.js'
,'widgets/listing.js'
,'widgets/layout.js'
,'widgets/tabbedpage.js'
,'webpage/page_header.js'
,'widgets/autosuggest.js'
,'widgets/tags.js'
,'widgets/form/fields.js'
,'webpage/history.js'
,'webpage/search.js'
,'webpage/spinner.js'
,'webpage/freeze_page.js'
,'webpage/error_console.js'
,'webpage/about.js'
,'webpage/loaders.js'
,'webpage/uploader.js'
,'webpage/page.js'
,'wn/widgets/page_sidebar.js'
,'wn/widgets/follow.js'
,'model/local_data.js'
,'model/doclist.js'
,'webpage/body.js'
,'app.js'
]

out_file_lite = 'js/wnf-lite.compressed.js'

#-------------------------------------------------

in_files_form = [
'widgets/form/form_container.js'
,'widgets/form/form_header.js'
,'widgets/form/form.js'
,'widgets/form/form_fields.js'
,'widgets/form/grid.js'
,'widgets/form/form_grid.js'
,'widgets/form/print_format.js'
,'widgets/form/email.js'
,'widgets/form/clientscriptAPI.js'
,'widgets/form/form_comments.js'
,'wn/widgets/form/sidebar.js'
,'wn/widgets/form/comments.js'
,'wn/widgets/form/attachments.js'
]

out_file_form = 'js/form.compressed.js';

in_files_report = [
'widgets/report_builder/bargraph.js'
,'widgets/report_builder/report_builder.js'
,'widgets/report_builder/datatable.js'
,'widgets/report_builder/calculator.js'
]

out_file_report = 'js/report.compressed.js'

in_files_css = [
'css/body.css',
'css/menus.css',
'css/messages.css',
'css/forms.css',
'css/grid.css',
'css/listing.css',
'css/report.css',
'css/calendar.css',
'css/autosuggest.css',
'css/dialog.css',
'css/wntoolbar.css',
'css/tabs.css',
'css/jqplot.css',
'css/bw-icons.css',
'css/sidebar.css',
'css/doc_column_view.css',
]

out_file_css = 'css/default.css'



#in_files_main += in_files_form

import os, os.path, shutil

# This code is original from jsmin by Douglas Crockford, it was translated to
# Python by Baruch Even. The original code had the following copyright and
# license.
#
# /* jsmin.c
# 2007-05-22
#
# Copyright (c) 2002 Douglas Crockford (www.crockford.com)
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of
# this software and associated documentation files (the "Software"), to deal in
# the Software without restriction, including without limitation the rights to
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
# of the Software, and to permit persons to whom the Software is furnished to do
# so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# The Software shall be used for Good, not Evil.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
# */

from StringIO import StringIO

def jsmin(js):
ins = StringIO(js)
outs = StringIO()
JavascriptMinify().minify(ins, outs)
str = outs.getvalue()
if len(str) > 0 and str[0] == '\n':
str = str[1:]
return str

def isAlphanum(c):
"""return true if the character is a letter, digit, underscore,
dollar sign, or non-ASCII character.
"""
return ((c >= 'a' and c <= 'z') or (c >= '0' and c <= '9') or
(c >= 'A' and c <= 'Z') or c == '_' or c == '$' or c == '\\' or (c is not None and ord(c) > 126));

class UnterminatedComment(Exception):
pass

class UnterminatedStringLiteral(Exception):
pass

class UnterminatedRegularExpression(Exception):
pass

class JavascriptMinify(object):

def _outA(self):
self.outstream.write(self.theA)
def _outB(self):
self.outstream.write(self.theB)

def _get(self):
"""return the next character from stdin. Watch out for lookahead. If
the character is a control character, translate it to a space or
linefeed.
"""
c = self.theLookahead
self.theLookahead = None
if c == None:
c = self.instream.read(1)
if c >= ' ' or c == '\n':
return c
if c == '': # EOF
return '\000'
if c == '\r':
return '\n'
return ' '

def _peek(self):
self.theLookahead = self._get()
return self.theLookahead

def _next(self):
"""get the next character, excluding comments. peek() is used to see
if an unescaped '/' is followed by a '/' or '*'.
"""
c = self._get()
if c == '/' and self.theA != '\\':
p = self._peek()
if p == '/':
c = self._get()
while c > '\n':
c = self._get()
return c
if p == '*':
c = self._get()
while 1:
c = self._get()
if c == '*':
if self._peek() == '/':
self._get()
return ' '
if c == '\000':
raise UnterminatedComment()

return c

def _action(self, action):
"""do something! What you do is determined by the argument:
1 Output A. Copy B to A. Get the next B.
2 Copy B to A. Get the next B. (Delete A).
3 Get the next B. (Delete B).
action treats a string as a single character. Wow!
action recognizes a regular expression if it is preceded by ( or , or =.
"""
if action <= 1:
self._outA()

if action <= 2:
self.theA = self.theB
if self.theA == "'" or self.theA == '"':
while 1:
self._outA()
self.theA = self._get()
if self.theA == self.theB:
break
if self.theA <= '\n':
raise UnterminatedStringLiteral()
if self.theA == '\\':
self._outA()
self.theA = self._get()


if action <= 3:
self.theB = self._next()
if self.theB == '/' and (self.theA == '(' or self.theA == ',' or
self.theA == '=' or self.theA == ':' or
self.theA == '[' or self.theA == '?' or
self.theA == '!' or self.theA == '&' or
self.theA == '|' or self.theA == ';' or
self.theA == '{' or self.theA == '}' or
self.theA == '\n'):
self._outA()
self._outB()
while 1:
self.theA = self._get()
if self.theA == '/':
break
elif self.theA == '\\':
self._outA()
self.theA = self._get()
elif self.theA <= '\n':
raise UnterminatedRegularExpression()
self._outA()
self.theB = self._next()


def _jsmin(self):
"""Copy the input to the output, deleting the characters which are
insignificant to JavaScript. Comments will be removed. Tabs will be
replaced with spaces. Carriage returns will be replaced with linefeeds.
Most spaces and linefeeds will be removed.
"""
self.theA = '\n'
self._action(3)

while self.theA != '\000':
if self.theA == ' ':
if isAlphanum(self.theB):
self._action(1)
else:
self._action(2)
elif self.theA == '\n':
if self.theB in ['{', '[', '(', '+', '-']:
self._action(1)
elif self.theB == ' ':
self._action(3)
else:
if isAlphanum(self.theB):
self._action(1)
else:
self._action(2)
else:
if self.theB == ' ':
if isAlphanum(self.theA):
self._action(1)
else:
self._action(3)
elif self.theB == '\n':
if self.theA in ['}', ']', ')', '+', '-', '"', '\'']:
self._action(1)
else:
if isAlphanum(self.theA):
self._action(1)
else:
self._action(3)
else:
self._action(1)

def minify(self, instream, outstream):
self.instream = instream
self.outstream = outstream
self.theA = '\n'
self.theB = None
self.theLookahead = None

self._jsmin()
self.instream.close()

def combine_css():
global out_file_css, in_files_css
data = ''
for f in in_files_css:
fh = open(f, 'read')
data += fh.read() + '\n'
fh.close()
out_file = open(out_file_css, 'w')
out_file.write(data)
out_file.close()

def _compress(in_files, out_file, in_type='js', verbose=False,
temp_file='.temp'):
import os

temp = open(temp_file, 'w')
for f in in_files:
print f + ' | ' + str(int(os.path.getsize('js/'+f)/1024)) + 'k'

fh = open('js/' + f)
data = fh.read() + '\n'
fh.close()

temp.write(data)

#print ' + %s' % f
temp.close()
out = open(out_file, 'w')

jsm = JavascriptMinify()
jsm.minify(open(temp_file,'r'), out)

out.close()

org_size = os.path.getsize(temp_file)
new_size = os.path.getsize(out_file)

print '=> %s' % out_file
print 'Original: %.2f kB' % (org_size / 1024.0)
print 'Compressed: %.2f kB' % (new_size / 1024.0)
print 'Reduction: %.1f%%' % (float(org_size - new_size) / org_size * 100)
print ''

os.remove(temp_file)

if __name__=='__main__':
import sys
if sys.argv[1]=='main':
_compress(in_files_main, out_file_main)
elif sys.argv[1]=='lite':
_compress(in_files_lite, out_file_lite)
elif sys.argv[1]=='form':
_compress(in_files_form, out_file_form)
elif sys.argv[1]=='report':
_compress(in_files_report, out_file_report)
elif sys.argv[1]=='css':
combine_css()
else:
print 'parameter must be one of main, lite, css, form or report'

sitemap.xml → conf/sitemap.xml Parādīt failu


css/autosuggest.css → css/legacy/autosuggest.css Parādīt failu


css/body.css → css/legacy/body.css Parādīt failu


css/bw-icons.css → css/legacy/bw-icons.css Parādīt failu

@@ -1,7 +1,7 @@

/** general icons **/

.wn-icon { background: url('../images/icons/icons.png'); width: 16px; height: 16px; cursor: pointer; }
.wn-icon { background: url('lib/images/icons/icons.png'); width: 16px; height: 16px; cursor: pointer; }
.ic-2x2_grid { background-position: 0 0; }
.ic-3x3_grid { background-position: 0 -36px; }
.ic-3x3_grid_2 { background-position: 0 -72px; }

css/calendar.css → css/legacy/calendar.css Parādīt failu


css/default.css → css/legacy/default.css Parādīt failu

@@ -107,41 +107,6 @@ div.std-footer-item {
margin: 0px 13px 13px 0px;
}

.shadow {
-moz-box-shadow: 0px 2px 2px #888;
-webkit-box-shadow: 0px 2px 2px #888;
box-shadow: 0px 2px 2px #888;
}

.round {
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
.gradient {
background: #ededed; /* Old browsers */
background: -moz-linear-gradient(top, #ededed 0%, #d1d1d1 47%, #b7b7b7 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ededed), color-stop(47%,#d1d1d1), color-stop(100%,#b7b7b7)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #ededed 0%,#d1d1d1 47%,#b7b7b7 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #ededed 0%,#d1d1d1 47%,#b7b7b7 100%); /* Opera11.10+ */
background: -ms-linear-gradient(top, #ededed 0%,#d1d1d1 47%,#b7b7b7 100%); /* IE10+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ededed', endColorstr='#b7b7b7',GradientType=0 ); /* IE6-9 */
background: linear-gradient(top, #ededed 0%,#d1d1d1 47%,#b7b7b7 100%); /* W3C */
}

.header-gradient {
background: #84827c; /* Old browsers */
background: -moz-linear-gradient(top, #84827c 0%, #27211c 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#84827c), color-stop(100%,#27211c)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #84827c 0%,#27211c 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #84827c 0%,#27211c 100%); /* Opera11.10+ */
background: -ms-linear-gradient(top, #84827c 0%,#27211c 100%); /* IE10+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#84827c', endColorstr='#27211c',GradientType=0 ); /* IE6-9 */
background: linear-gradient(top, #84827c 0%,#27211c 100%); /* W3C */
color: #FFF;
}


/******** Menus - menu.js ************/

ul.menu_toolbar {
@@ -1176,20 +1141,6 @@ div.dialog_row table td textarea {

/* Recent */

div.recent_starred {
width: 16px;
height: 16px;
cursor: pointer;
background: url('../images/ui/star.gif');
}

div.recent_unstarred {
width: 16px;
height: 16px;
cursor: pointer;
background: url('../images/ui/star_plain.gif');
}

div.status_flag {
width: 8px;
height: 8px;
@@ -1198,21 +1149,14 @@ div.status_flag {
background-color: #EEE;
}





/* Search */

.search_table td {
padding: 2px;
}




/*** for wn toolbar ***/
.wntoolbar-icon { background: url('../images/icons/wntoolbar-icons.png'); width: 16px; height: 16px; }
.wntoolbar-icon { background: url('lib/images/icons/wntoolbar-icons.png'); width: 16px; height: 16px; }
.sprite-home { background-position: 0 0; }
.sprite-new { background-position: 0 -66px; }
.sprite-pages { background-position: 0 -132px; }
@@ -1509,7 +1453,7 @@ div.jqplot-noData-container {

/** general icons **/

.wn-icon { background: url('../images/icons/icons.png'); width: 16px; height: 16px; cursor: pointer; }
.wn-icon { background: url('lib/images/icons/icons.png'); width: 16px; height: 16px; cursor: pointer; }
.ic-2x2_grid { background-position: 0 0; }
.ic-3x3_grid { background-position: 0 -36px; }
.ic-3x3_grid_2 { background-position: 0 -72px; }

css/dialog.css → css/legacy/dialog.css Parādīt failu


css/doc_column_view.css → css/legacy/doc_column_view.css Parādīt failu


css/forms.css → css/legacy/forms.css Parādīt failu


css/grid.css → css/legacy/grid.css Parādīt failu


css/images/ui-bg_flat_0_aaaaaa_40x100.png → css/legacy/images/ui-bg_flat_0_aaaaaa_40x100.png Parādīt failu


css/images/ui-bg_flat_75_ffffff_40x100.png → css/legacy/images/ui-bg_flat_75_ffffff_40x100.png Parādīt failu


css/images/ui-bg_glass_55_fbf9ee_1x400.png → css/legacy/images/ui-bg_glass_55_fbf9ee_1x400.png Parādīt failu


css/images/ui-bg_glass_95_fef1ec_1x400.png → css/legacy/images/ui-bg_glass_95_fef1ec_1x400.png Parādīt failu


css/images/ui-bg_highlight-hard_65_ffffff_1x100.png → css/legacy/images/ui-bg_highlight-hard_65_ffffff_1x100.png Parādīt failu


css/images/ui-bg_highlight-hard_75_dadada_1x100.png → css/legacy/images/ui-bg_highlight-hard_75_dadada_1x100.png Parādīt failu


css/images/ui-bg_highlight-hard_75_e6e6e6_1x100.png → css/legacy/images/ui-bg_highlight-hard_75_e6e6e6_1x100.png Parādīt failu


css/images/ui-bg_highlight-soft_75_cccccc_1x100.png → css/legacy/images/ui-bg_highlight-soft_75_cccccc_1x100.png Parādīt failu


css/images/ui-icons_222222_256x240.png → css/legacy/images/ui-icons_222222_256x240.png Parādīt failu


css/images/ui-icons_2e83ff_256x240.png → css/legacy/images/ui-icons_2e83ff_256x240.png Parādīt failu


css/images/ui-icons_454545_256x240.png → css/legacy/images/ui-icons_454545_256x240.png Parādīt failu


css/images/ui-icons_888888_256x240.png → css/legacy/images/ui-icons_888888_256x240.png Parādīt failu


css/images/ui-icons_cd0a0a_256x240.png → css/legacy/images/ui-icons_cd0a0a_256x240.png Parādīt failu


css/jqplot.css → css/legacy/jqplot.css Parādīt failu


css/jquery-ui.css → css/legacy/jquery-ui.css Parādīt failu


css/listing.css → css/legacy/listing.css Parādīt failu


css/menus.css → css/legacy/menus.css Parādīt failu


css/messages.css → css/legacy/messages.css Parādīt failu


css/report.css → css/legacy/report.css Parādīt failu


css/sidebar.css → css/legacy/sidebar.css Parādīt failu


css/tabs.css → css/legacy/tabs.css Parādīt failu


css/user.css → css/legacy/user.css Parādīt failu


css/wntoolbar.css → css/legacy/wntoolbar.css Parādīt failu

@@ -1,20 +1,6 @@

/* Recent */

div.recent_starred {
width: 16px;
height: 16px;
cursor: pointer;
background: url('../images/ui/star.gif');
}

div.recent_unstarred {
width: 16px;
height: 16px;
cursor: pointer;
background: url('../images/ui/star_plain.gif');
}

div.status_flag {
width: 8px;
height: 8px;
@@ -23,21 +9,14 @@ div.status_flag {
background-color: #EEE;
}





/* Search */

.search_table td {
padding: 2px;
}




/*** for wn toolbar ***/
.wntoolbar-icon { background: url('../images/icons/wntoolbar-icons.png'); width: 16px; height: 16px; }
.wntoolbar-icon { background: url('lib/images/icons/wntoolbar-icons.png'); width: 16px; height: 16px; }
.sprite-home { background-position: 0 0; }
.sprite-new { background-position: 0 -66px; }
.sprite-pages { background-position: 0 -132px; }

+ 0
- 234
data/Framework.sql Parādīt failu

@@ -1,245 +0,0 @@


--
--

DROP TABLE IF EXISTS `__DocTypeCache`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `__DocTypeCache` (
`name` varchar(120) DEFAULT NULL,
`modified` datetime DEFAULT NULL,
`content` text
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
--

DROP TABLE IF EXISTS `__SessionCache`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `__SessionCache` (
`user` varchar(120) DEFAULT NULL,
`country` varchar(120) DEFAULT NULL,
`cache` longtext
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;



--
--

DROP TABLE IF EXISTS `tabDocField`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `tabDocField` (
`name` varchar(120) NOT NULL,
`creation` datetime DEFAULT NULL,
`modified` datetime DEFAULT NULL,
`modified_by` varchar(40) DEFAULT NULL,
`owner` varchar(40) DEFAULT NULL,
`docstatus` int(1) DEFAULT '0',
`parent` varchar(120) DEFAULT NULL,
`parentfield` varchar(120) DEFAULT NULL,
`parenttype` varchar(120) DEFAULT NULL,
`idx` int(8) DEFAULT NULL,
`fieldname` varchar(180) DEFAULT NULL,
`label` varchar(180) DEFAULT NULL,
`oldfieldname` varchar(180) DEFAULT NULL,
`fieldtype` varchar(180) DEFAULT NULL,
`oldfieldtype` varchar(180) DEFAULT NULL,
`options` text,
`search_index` int(3) DEFAULT NULL,
`hidden` int(3) DEFAULT NULL,
`print_hide` int(3) DEFAULT NULL,
`report_hide` int(3) DEFAULT NULL,
`reqd` int(3) DEFAULT NULL,
`no_copy` int(3) DEFAULT NULL,
`allow_on_submit` int(3) DEFAULT NULL,
`trigger` varchar(180) DEFAULT NULL,
`depends_on` varchar(180) DEFAULT NULL,
`permlevel` int(3) DEFAULT NULL,
`width` varchar(180) DEFAULT NULL,
`default` text,
`description` text,
`colour` varchar(180) DEFAULT NULL,
`icon` varchar(180) DEFAULT NULL,
`in_filter` int(3) DEFAULT NULL,
PRIMARY KEY (`name`),
KEY `parent` (`parent`),
KEY `label` (`label`),
KEY `fieldtype` (`fieldtype`),
KEY `fieldname` (`fieldname`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
--

DROP TABLE IF EXISTS `tabDocFormat`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `tabDocFormat` (
`name` varchar(120) NOT NULL,
`creation` datetime DEFAULT NULL,
`modified` datetime DEFAULT NULL,
`modified_by` varchar(40) DEFAULT NULL,
`owner` varchar(40) DEFAULT NULL,
`docstatus` int(1) DEFAULT '0',
`parent` varchar(120) DEFAULT NULL,
`parentfield` varchar(120) DEFAULT NULL,
`parenttype` varchar(120) DEFAULT NULL,
`idx` int(8) DEFAULT NULL,
`format` varchar(180) DEFAULT NULL,
PRIMARY KEY (`name`),
KEY `parent` (`parent`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
--

DROP TABLE IF EXISTS `tabDocPerm`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `tabDocPerm` (
`name` varchar(120) NOT NULL,
`creation` datetime DEFAULT NULL,
`modified` datetime DEFAULT NULL,
`modified_by` varchar(40) DEFAULT NULL,
`owner` varchar(40) DEFAULT NULL,
`docstatus` int(1) DEFAULT '0',
`parent` varchar(120) DEFAULT NULL,
`parentfield` varchar(120) DEFAULT NULL,
`parenttype` varchar(120) DEFAULT NULL,
`idx` int(8) DEFAULT NULL,
`permlevel` int(11) DEFAULT NULL,
`role` varchar(180) DEFAULT NULL,
`match` varchar(180) DEFAULT NULL,
`read` int(3) DEFAULT NULL,
`write` int(3) DEFAULT NULL,
`create` int(3) DEFAULT NULL,
`submit` int(3) DEFAULT NULL,
`cancel` int(3) DEFAULT NULL,
`amend` int(3) DEFAULT NULL,
`execute` int(3) DEFAULT NULL,
PRIMARY KEY (`name`),
KEY `parent` (`parent`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
--

DROP TABLE IF EXISTS `tabDocType`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `tabDocType` (
`name` varchar(180) NOT NULL DEFAULT '',
`creation` datetime DEFAULT NULL,
`modified` datetime DEFAULT NULL,
`modified_by` varchar(40) DEFAULT NULL,
`owner` varchar(180) DEFAULT NULL,
`docstatus` int(1) DEFAULT '0',
`parent` varchar(120) DEFAULT NULL,
`parentfield` varchar(120) DEFAULT NULL,
`parenttype` varchar(120) DEFAULT NULL,
`idx` int(8) DEFAULT NULL,
`search_fields` varchar(180) DEFAULT NULL,
`issingle` int(1) DEFAULT NULL,
`istable` int(1) DEFAULT NULL,
`version` int(11) DEFAULT NULL,
`module` varchar(180) DEFAULT NULL,
`autoname` varchar(180) DEFAULT NULL,
`name_case` varchar(180) DEFAULT NULL,
`description` text,
`colour` varchar(180) DEFAULT NULL,
`read_only` int(1) DEFAULT NULL,
`in_create` int(1) DEFAULT NULL,
`show_in_menu` int(3) DEFAULT NULL,
`menu_index` int(11) DEFAULT NULL,
`parent_node` varchar(180) DEFAULT NULL,
`smallicon` varchar(180) DEFAULT NULL,
`allow_print` int(1) DEFAULT NULL,
`allow_email` int(1) DEFAULT NULL,
`allow_copy` int(1) DEFAULT NULL,
`allow_rename` int(1) DEFAULT NULL,
`hide_toolbar` int(1) DEFAULT NULL,
`hide_heading` int(1) DEFAULT NULL,
`allow_attach` int(1) DEFAULT NULL,
`use_template` int(1) DEFAULT NULL,
`max_attachments` int(11) DEFAULT NULL,
`section_style` varchar(180) DEFAULT NULL,
`client_script` text,
`client_script_core` text,
`server_code` text,
`server_code_core` text,
`server_code_compiled` text,
`client_string` text,
`server_code_error` varchar(180) DEFAULT NULL,
`print_outline` varchar(180) DEFAULT NULL,
`dt_template` text,
`is_transaction_doc` int(1) DEFAULT NULL,
`change_log` text,
`read_only_onload` int(1) DEFAULT NULL,
PRIMARY KEY (`name`),
KEY `parent` (`parent`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
--

DROP TABLE IF EXISTS `tabSeries`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `tabSeries` (
`name` varchar(40) DEFAULT NULL,
`current` int(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;


--
--

DROP TABLE IF EXISTS `tabSessions`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `tabSessions` (
`user` varchar(40) DEFAULT NULL,
`sid` varchar(120) DEFAULT NULL,
`sessiondata` longtext,
`ipaddress` varchar(16) DEFAULT NULL,
`lastupdate` datetime DEFAULT NULL,
`status` varchar(20) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;


--
--

DROP TABLE IF EXISTS `tabSingles`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `tabSingles` (
`doctype` varchar(40) DEFAULT NULL,
`field` varchar(40) DEFAULT NULL,
`value` text,
KEY `doctype` (`doctype`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


Binārs
images/icons/Accounts.gif Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 1.0 KiB

Binārs
images/icons/Accounts.png Parādīt failu

Pirms Pēc
Platums: 20  |  Augstums: 20  |  Izmērs: 3.8 KiB

Binārs
images/icons/Analysis.gif Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 1017 B

Binārs
images/icons/Analysis.png Parādīt failu

Pirms Pēc
Platums: 20  |  Augstums: 20  |  Izmērs: 3.7 KiB

Binārs
images/icons/Buying.gif Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 1016 B

Binārs
images/icons/Buying.png Parādīt failu

Pirms Pēc
Platums: 20  |  Augstums: 20  |  Izmērs: 3.7 KiB

Binārs
images/icons/HR.gif Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 1012 B

Binārs
images/icons/HR.png Parādīt failu

Pirms Pēc
Platums: 20  |  Augstums: 20  |  Izmērs: 3.7 KiB

Binārs
images/icons/Home.gif Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 1.0 KiB

Binārs
images/icons/Home.png Parādīt failu

Pirms Pēc
Platums: 20  |  Augstums: 20  |  Izmērs: 3.8 KiB

Binārs
images/icons/Maintenance.gif Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 617 B

Binārs
images/icons/Maintenance.png Parādīt failu

Pirms Pēc
Platums: 20  |  Augstums: 20  |  Izmērs: 4.0 KiB

Binārs
images/icons/Production.gif Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 1.0 KiB

Binārs
images/icons/Production.png Parādīt failu

Pirms Pēc
Platums: 20  |  Augstums: 20  |  Izmērs: 3.6 KiB

Binārs
images/icons/Projects.gif Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 1001 B

Binārs
images/icons/Projects.png Parādīt failu

Pirms Pēc
Platums: 20  |  Augstums: 20  |  Izmērs: 3.7 KiB

Binārs
images/icons/Selling.gif Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 994 B

Binārs
images/icons/Selling.png Parādīt failu

Pirms Pēc
Platums: 20  |  Augstums: 20  |  Izmērs: 3.6 KiB

Binārs
images/icons/Setup.gif Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 528 B

Binārs
images/icons/Setup.png Parādīt failu

Pirms Pēc
Platums: 20  |  Augstums: 20  |  Izmērs: 3.6 KiB

Binārs
images/icons/Stock.gif Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 1.0 KiB

Binārs
images/icons/Stock.png Parādīt failu

Pirms Pēc
Platums: 20  |  Augstums: 20  |  Izmērs: 3.5 KiB

Binārs
images/icons/accept.gif Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 1.0 KiB

Binārs
images/icons/accept.png Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 781 B

Binārs
images/icons/add.gif Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 1010 B

Binārs
images/icons/add.png Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 733 B

Binārs
images/icons/anchor.png Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 523 B

Binārs
images/icons/application.gif Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 600 B

Binārs
images/icons/application.png Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 464 B

Binārs
images/icons/application_add.png Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 619 B

Binārs
images/icons/application_cascade.png Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 524 B

Binārs
images/icons/application_delete.png Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 610 B

Binārs
images/icons/application_double.png Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 533 B

Binārs
images/icons/application_form.png Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 467 B

Binārs
images/icons/application_go.png Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 634 B

Binārs
images/icons/application_side_list.png Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 510 B

Binārs
images/icons/application_side_tree.png Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 483 B

Binārs
images/icons/application_split.png Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 520 B

Binārs
images/icons/application_tile_horizontal.png Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 432 B

Binārs
images/icons/application_tile_vertical.png Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 492 B

Binārs
images/icons/application_view_columns.png Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 493 B

Binārs
images/icons/application_view_detail.png Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 576 B

Binārs
images/icons/application_view_tile.png Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 465 B

Binārs
images/icons/application_xp.png Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 426 B

Binārs
images/icons/application_xp_terminal.png Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 507 B

Binārs
images/icons/arrow_branch.png Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 582 B

Binārs
images/icons/arrow_divide.png Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 677 B

Binārs
images/icons/arrow_down.gif Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 312 B

Binārs
images/icons/arrow_down.png Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 379 B

Binārs
images/icons/arrow_in.png Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 600 B

Binārs
images/icons/arrow_inout.png Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 551 B

Binārs
images/icons/arrow_join.png Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 626 B

Binārs
images/icons/arrow_left.gif Parādīt failu

Pirms Pēc
Platums: 16  |  Augstums: 16  |  Izmērs: 306 B

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels

Notiek ielāde…
Atcelt
Saglabāt