From 6d9a5e3d9dfb08767ba52b8cd93e509a69306d7b Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 27 Jul 2011 13:37:37 +0530 Subject: [PATCH 01/26] added coffee folder (dirty) --- js/wn-coffee/app.coffee | 3 +++ js/wn-coffee/widgets/form/form.coffee | 31 +++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 js/wn-coffee/app.coffee create mode 100644 js/wn-coffee/widgets/form/form.coffee diff --git a/js/wn-coffee/app.coffee b/js/wn-coffee/app.coffee new file mode 100644 index 0000000000..da3494930e --- /dev/null +++ b/js/wn-coffee/app.coffee @@ -0,0 +1,3 @@ +# Entry level app + +wn.app = {} \ No newline at end of file diff --git a/js/wn-coffee/widgets/form/form.coffee b/js/wn-coffee/widgets/form/form.coffee new file mode 100644 index 0000000000..43b8a8bae0 --- /dev/null +++ b/js/wn-coffee/widgets/form/form.coffee @@ -0,0 +1,31 @@ +class wn.widgets.Form + constructor: (@modeltype) -> + @view = wn.app.models['DocType'][modeltype].__view + @sections = [] + + render: (@parent) -> + # wrapper + @wrapper = $a @parent 'div' 'form_wrapper' + + # render sections + for s in @view.sections + @sections.push new wn.widgets.FormSection @wrapper, section + +class wn.widgets.FormSection + constructor: (@parent, @section) -> + @columns = [] + @fields = [] + @render() + + render: -> + @wrapper = $a @parent 'div' + for f in section.fields + @render_field f, section + + render_section: (section) -> + # render fields + + + render_field: (field, section) -> + # call the field factory + make_field field, \ No newline at end of file From ba9262c0b7853b5596328264f2b01c8ceb36e5a6 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 27 Jul 2011 17:41:29 +0530 Subject: [PATCH 02/26] added css to doctype --- cgi-bin/webnotes/model/doctype.py | 3 ++- css/body.css | 36 ++++++++++++++++++++++++++++++- css/default.css | 35 ++++++++++++++++++++++++++++++ js/form.compressed.js | 5 +++-- js/widgets/form/form.js | 9 ++++++-- 5 files changed, 82 insertions(+), 6 deletions(-) diff --git a/cgi-bin/webnotes/model/doctype.py b/cgi-bin/webnotes/model/doctype.py index 4be63165bb..43e3dc983f 100644 --- a/cgi-bin/webnotes/model/doctype.py +++ b/cgi-bin/webnotes/model/doctype.py @@ -264,7 +264,8 @@ class _DocType: from webnotes.modules import Module doc = doclist[0] - doc.fields['__client_script'] = Module(doc.module).get_doc_file('doctype', doc.name, '.js').read() + doc.fields['__js'] = Module(doc.module).get_doc_file('doctype', doc.name, '.js').read() + doc.fields['__css'] = Module(doc.module).get_doc_file('doctype', doc.name, '.css').read() self._load_select_options(doclist) self._clear_code(doclist) diff --git a/css/body.css b/css/body.css index 3fa852c5b6..cef6d27d25 100644 --- a/css/body.css +++ b/css/body.css @@ -105,4 +105,38 @@ div.std-footer { div.std-footer-item { margin: 0px 13px 13px 0px; -} \ No newline at end of file +} + +.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; +} diff --git a/css/default.css b/css/default.css index 1206c8fe72..bb1fc1b067 100644 --- a/css/default.css +++ b/css/default.css @@ -107,6 +107,41 @@ 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 { diff --git a/js/form.compressed.js b/js/form.compressed.js index 32c2369634..6536b4fa9a 100644 --- a/js/form.compressed.js +++ b/js/form.compressed.js @@ -91,7 +91,7 @@ _f.Frm.prototype.add_custom_button=function(label,fn,icon){this.frm_head.page_he _f.Frm.prototype.clear_custom_buttons=function(){} _f.Frm.prototype.add_fetch=function(link_field,src_field,tar_field){if(!this.fetch_dict[link_field]){this.fetch_dict[link_field]={'columns':[],'fields':[]}} this.fetch_dict[link_field].columns.push(src_field);this.fetch_dict[link_field].fields.push(tar_field);} -_f.Frm.prototype.setup_client_script=function(){if(this.meta.client_script_core||this.meta.client_script||this.meta.__client_script){this.runclientscript('setup',this.doctype,this.docname);}} +_f.Frm.prototype.setup_client_script=function(){if(this.meta.client_script_core||this.meta.client_script||this.meta.__js){this.runclientscript('setup',this.doctype,this.docname);}} _f.Frm.prototype.set_parent=function(parent){if(parent){this.parent=parent;if(this.wrapper&&this.wrapper.parentNode!=parent) parent.appendChild(this.wrapper);}} _f.Frm.prototype.refresh_print_layout=function(){$ds(this.print_wrapper);$dh(this.page_layout.wrapper);var me=this;var print_callback=function(print_html){me.print_body.innerHTML=print_html;} @@ -163,7 +163,8 @@ onrefresh(r,rtxt);me.refresh_fields();me.refresh_dependency();if(callingfield)ca _f.Frm.prototype.runclientscript=function(caller,cdt,cdn){var _dt=this.parent_doctype?this.parent_doctype:this.doctype;var _dn=this.parent_docname?this.parent_docname:this.docname;var doc=get_local(_dt,_dn);if(!cdt)cdt=this.doctype;if(!cdn)cdn=this.docname;var ret=null;try{if(this.cscript[caller]) ret=this.cscript[caller](doc,cdt,cdn);if(this.cscript['custom_'+caller]) ret+=this.cscript['custom_'+caller](doc,cdt,cdn);}catch(e){submit_error(e);} -if(caller&&caller.toLowerCase()=='setup'){var doctype=get_local('DocType',this.doctype);var cs=doctype.__client_script?doctype.__client_script:(doctype.client_script_core+doctype.client_script);if(cs){try{var tmp=eval(cs);}catch(e){submit_error(e);}} +if(caller&&caller.toLowerCase()=='setup'){var doctype=get_local('DocType',this.doctype);var cs=doctype.__js||(doctype.client_script_core+doctype.client_script);if(cs){try{var tmp=eval(cs);}catch(e){submit_error(e);}} +if(doctype.__css)set_style(doctype.__css) if(doctype.client_string){this.cstring={};var elist=doctype.client_string.split('---');for(var i=1;i Date: Wed, 27 Jul 2011 18:13:56 +0530 Subject: [PATCH 03/26] fix to modules & js+css in doctype --- cgi-bin/webnotes/model/doctype.py | 7 ++++++- cgi-bin/webnotes/modules/__init__.py | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/cgi-bin/webnotes/model/doctype.py b/cgi-bin/webnotes/model/doctype.py index 43e3dc983f..3aa11f6803 100644 --- a/cgi-bin/webnotes/model/doctype.py +++ b/cgi-bin/webnotes/model/doctype.py @@ -263,8 +263,13 @@ class _DocType: doclist = self._load_from_cache() from webnotes.modules import Module + + # add custom script if present + from webnotes.model.code import get_custom_script + custom = get_custom_script(dt, 'Client') or '' + doc = doclist[0] - doc.fields['__js'] = Module(doc.module).get_doc_file('doctype', doc.name, '.js').read() + doc.fields['__js'] = Module(doc.module).get_doc_file('doctype', doc.name, '.js').read() + custom doc.fields['__css'] = Module(doc.module).get_doc_file('doctype', doc.name, '.css').read() self._load_select_options(doclist) self._clear_code(doclist) diff --git a/cgi-bin/webnotes/modules/__init__.py b/cgi-bin/webnotes/modules/__init__.py index 9902a403bd..5c68714883 100644 --- a/cgi-bin/webnotes/modules/__init__.py +++ b/cgi-bin/webnotes/modules/__init__.py @@ -305,6 +305,7 @@ class JsModuleFile(ModuleFile): """ name = match.group('name') + custom = '' import webnotes.defs, os if os.path.sep in name: @@ -313,8 +314,12 @@ class JsModuleFile(ModuleFile): else: # its a doctype path = os.path.join(get_doc_path('DocType', name), scrub(name) + '.js') + + # add custom script if present + from webnotes.model.code import get_custom_script + custom = get_custom_script(dt, 'Client') or '' - return JsModuleFile(path).read() + return JsModuleFile(path).read() + custom def read(self): """ From f253fa8e0be548f3c3df7999b4ec18ce2ce89821 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 7 Sep 2011 16:44:57 +0530 Subject: [PATCH 04/26] version 2 --- INSTALL.txt => INSTALL.md | 15 +- README | 1 - README.md | 23 + blank.html | 39 -- blank1.html | 0 cgi-bin/backupall.py | 24 - cgi-bin/compilejs.py | 73 --- cgi-bin/core/module.info | 1 - cgi-bin/get_module_js.cgi | 98 ---- cgi-bin/getfile.cgi | 82 ---- cgi-bin/getjsfile.cgi | 72 --- cgi-bin/pypi-setup.py | 35 -- compress.py | 425 ------------------ sitemap.xml => conf/sitemap.xml | 0 css/{ => legacy}/autosuggest.css | 0 css/{ => legacy}/body.css | 0 css/{ => legacy}/bw-icons.css | 2 +- css/{ => legacy}/calendar.css | 0 css/{ => legacy}/default.css | 60 +-- css/{ => legacy}/dialog.css | 0 css/{ => legacy}/doc_column_view.css | 0 css/{ => legacy}/forms.css | 0 css/{ => legacy}/grid.css | 0 .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin .../images/ui-bg_flat_75_ffffff_40x100.png | Bin .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin .../ui-bg_highlight-hard_65_ffffff_1x100.png | Bin .../ui-bg_highlight-hard_75_dadada_1x100.png | Bin .../ui-bg_highlight-hard_75_e6e6e6_1x100.png | Bin .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin .../images/ui-icons_222222_256x240.png | Bin .../images/ui-icons_2e83ff_256x240.png | Bin .../images/ui-icons_454545_256x240.png | Bin .../images/ui-icons_888888_256x240.png | Bin .../images/ui-icons_cd0a0a_256x240.png | Bin css/{ => legacy}/jqplot.css | 0 css/{ => legacy}/jquery-ui.css | 0 css/{ => legacy}/listing.css | 0 css/{ => legacy}/menus.css | 0 css/{ => legacy}/messages.css | 0 css/{ => legacy}/report.css | 0 css/{ => legacy}/sidebar.css | 0 css/{ => legacy}/tabs.css | 0 css/{ => legacy}/user.css | 0 css/{ => legacy}/wntoolbar.css | 23 +- data/Framework.sql | 245 ---------- images/icons/Accounts.gif | Bin 1042 -> 0 bytes images/icons/Accounts.png | Bin 3935 -> 0 bytes images/icons/Analysis.gif | Bin 1017 -> 0 bytes images/icons/Analysis.png | Bin 3772 -> 0 bytes images/icons/Buying.gif | Bin 1016 -> 0 bytes images/icons/Buying.png | Bin 3808 -> 0 bytes images/icons/HR.gif | Bin 1012 -> 0 bytes images/icons/HR.png | Bin 3751 -> 0 bytes images/icons/Home.gif | Bin 1046 -> 0 bytes images/icons/Home.png | Bin 3917 -> 0 bytes images/icons/Maintenance.gif | Bin 617 -> 0 bytes images/icons/Maintenance.png | Bin 4045 -> 0 bytes images/icons/Production.gif | Bin 1024 -> 0 bytes images/icons/Production.png | Bin 3698 -> 0 bytes images/icons/Projects.gif | Bin 1001 -> 0 bytes images/icons/Projects.png | Bin 3822 -> 0 bytes images/icons/Selling.gif | Bin 994 -> 0 bytes images/icons/Selling.png | Bin 3667 -> 0 bytes images/icons/Setup.gif | Bin 528 -> 0 bytes images/icons/Setup.png | Bin 3675 -> 0 bytes images/icons/Stock.gif | Bin 1030 -> 0 bytes images/icons/Stock.png | Bin 3635 -> 0 bytes images/icons/accept.gif | Bin 1024 -> 0 bytes images/icons/accept.png | Bin 781 -> 0 bytes images/icons/add.gif | Bin 1010 -> 0 bytes images/icons/add.png | Bin 733 -> 0 bytes images/icons/anchor.png | Bin 523 -> 0 bytes images/icons/application.gif | Bin 600 -> 0 bytes images/icons/application.png | Bin 464 -> 0 bytes images/icons/application_add.png | Bin 619 -> 0 bytes images/icons/application_cascade.png | Bin 524 -> 0 bytes images/icons/application_delete.png | Bin 610 -> 0 bytes images/icons/application_double.png | Bin 533 -> 0 bytes images/icons/application_form.png | Bin 467 -> 0 bytes images/icons/application_go.png | Bin 634 -> 0 bytes images/icons/application_side_list.png | Bin 510 -> 0 bytes images/icons/application_side_tree.png | Bin 483 -> 0 bytes images/icons/application_split.png | Bin 520 -> 0 bytes images/icons/application_tile_horizontal.png | Bin 432 -> 0 bytes images/icons/application_tile_vertical.png | Bin 492 -> 0 bytes images/icons/application_view_columns.png | Bin 493 -> 0 bytes images/icons/application_view_detail.png | Bin 576 -> 0 bytes images/icons/application_view_tile.png | Bin 465 -> 0 bytes images/icons/application_xp.png | Bin 426 -> 0 bytes images/icons/application_xp_terminal.png | Bin 507 -> 0 bytes images/icons/arrow_branch.png | Bin 582 -> 0 bytes images/icons/arrow_divide.png | Bin 677 -> 0 bytes images/icons/arrow_down.gif | Bin 312 -> 0 bytes images/icons/arrow_down.png | Bin 379 -> 0 bytes images/icons/arrow_in.png | Bin 600 -> 0 bytes images/icons/arrow_inout.png | Bin 551 -> 0 bytes images/icons/arrow_join.png | Bin 626 -> 0 bytes images/icons/arrow_left.gif | Bin 306 -> 0 bytes images/icons/arrow_left.png | Bin 345 -> 0 bytes images/icons/arrow_merge.png | Bin 484 -> 0 bytes images/icons/arrow_out.png | Bin 594 -> 0 bytes images/icons/arrow_redo.png | Bin 625 -> 0 bytes images/icons/arrow_refresh.png | Bin 685 -> 0 bytes images/icons/arrow_refresh_small.png | Bin 506 -> 0 bytes images/icons/arrow_right.gif | Bin 307 -> 0 bytes images/icons/arrow_right.png | Bin 349 -> 0 bytes images/icons/arrow_rotate_anticlockwise.png | Bin 608 -> 0 bytes images/icons/arrow_rotate_clockwise.png | Bin 602 -> 0 bytes images/icons/arrow_switch.png | Bin 683 -> 0 bytes images/icons/arrow_turn_left.png | Bin 516 -> 0 bytes images/icons/arrow_turn_right.png | Bin 489 -> 0 bytes images/icons/arrow_undo.png | Bin 631 -> 0 bytes images/icons/arrow_up.gif | Bin 311 -> 0 bytes images/icons/arrow_up.png | Bin 372 -> 0 bytes images/icons/asterisk_orange.png | Bin 760 -> 0 bytes images/icons/asterisk_yellow.png | Bin 743 -> 0 bytes images/icons/attach.png | Bin 391 -> 0 bytes images/icons/award_star_add.png | Bin 853 -> 0 bytes images/icons/award_star_bronze_1.png | Bin 733 -> 0 bytes images/icons/award_star_bronze_2.png | Bin 755 -> 0 bytes images/icons/award_star_bronze_3.png | Bin 754 -> 0 bytes images/icons/award_star_delete.png | Bin 849 -> 0 bytes images/icons/award_star_gold_1.png | Bin 753 -> 0 bytes images/icons/award_star_gold_2.png | Bin 770 -> 0 bytes images/icons/award_star_gold_3.png | Bin 781 -> 0 bytes images/icons/award_star_silver_1.png | Bin 714 -> 0 bytes images/icons/award_star_silver_2.png | Bin 734 -> 0 bytes images/icons/award_star_silver_3.png | Bin 738 -> 0 bytes images/icons/basket.png | Bin 669 -> 0 bytes images/icons/bell.png | Bin 789 -> 0 bytes images/icons/bin.png | Bin 476 -> 0 bytes images/icons/bin_closed.png | Bin 363 -> 0 bytes images/icons/bin_empty.png | Bin 475 -> 0 bytes images/icons/bomb.png | Bin 793 -> 0 bytes images/icons/book.png | Bin 593 -> 0 bytes images/icons/book_add.png | Bin 714 -> 0 bytes images/icons/book_addresses.png | Bin 770 -> 0 bytes images/icons/box.png | Bin 555 -> 0 bytes images/icons/brick.png | Bin 452 -> 0 bytes images/icons/bricks.png | Bin 825 -> 0 bytes images/icons/briefcase.png | Bin 793 -> 0 bytes images/icons/bug.png | Bin 774 -> 0 bytes images/icons/building.png | Bin 556 -> 0 bytes images/icons/bullet_add.png | Bin 286 -> 0 bytes images/icons/bullet_arrow_bottom.png | Bin 229 -> 0 bytes images/icons/bullet_arrow_down.png | Bin 201 -> 0 bytes images/icons/bullet_arrow_top.png | Bin 230 -> 0 bytes images/icons/bullet_arrow_up.png | Bin 201 -> 0 bytes images/icons/bullet_black.png | Bin 211 -> 0 bytes images/icons/bullet_blue.png | Bin 289 -> 0 bytes images/icons/bullet_delete.png | Bin 308 -> 0 bytes images/icons/bullet_green.png | Bin 295 -> 0 bytes images/icons/bullet_key.png | Bin 436 -> 0 bytes images/icons/bullet_orange.png | Bin 283 -> 0 bytes images/icons/bullet_picture.png | Bin 470 -> 0 bytes images/icons/bullet_pink.png | Bin 286 -> 0 bytes images/icons/bullet_purple.png | Bin 294 -> 0 bytes images/icons/bullet_red.png | Bin 287 -> 0 bytes images/icons/bullet_star.png | Bin 331 -> 0 bytes images/icons/bullet_toggle_minus.png | Bin 207 -> 0 bytes images/icons/bullet_toggle_plus.png | Bin 209 -> 0 bytes images/icons/bullet_white.png | Bin 201 -> 0 bytes images/icons/bullet_wrench.png | Bin 448 -> 0 bytes images/icons/bullet_yellow.png | Bin 287 -> 0 bytes images/icons/cake.png | Bin 676 -> 0 bytes images/icons/calculator.gif | Bin 597 -> 0 bytes images/icons/calculator.png | Bin 543 -> 0 bytes images/icons/calendar.gif | Bin 1037 -> 0 bytes images/icons/calendar.png | Bin 675 -> 0 bytes images/icons/calendar_view_day.png | Bin 572 -> 0 bytes images/icons/calendar_view_month.png | Bin 595 -> 0 bytes images/icons/calendar_view_week.png | Bin 480 -> 0 bytes images/icons/camera.png | Bin 665 -> 0 bytes images/icons/cancel.gif | Bin 607 -> 0 bytes images/icons/cancel.png | Bin 587 -> 0 bytes images/icons/car.png | Bin 610 -> 0 bytes images/icons/car_add.png | Bin 677 -> 0 bytes images/icons/car_delete.png | Bin 689 -> 0 bytes images/icons/cart.png | Bin 421 -> 0 bytes images/icons/cart_add.png | Bin 711 -> 0 bytes images/icons/cart_delete.png | Bin 742 -> 0 bytes images/icons/cart_edit.png | Bin 789 -> 0 bytes images/icons/cart_error.png | Bin 790 -> 0 bytes images/icons/cart_go.png | Bin 763 -> 0 bytes images/icons/cart_put.png | Bin 763 -> 0 bytes images/icons/cart_remove.png | Bin 769 -> 0 bytes images/icons/cd.png | Bin 673 -> 0 bytes images/icons/chart_bar.gif | Bin 1015 -> 0 bytes images/icons/chart_bar.png | Bin 541 -> 0 bytes images/icons/chart_curve.png | Bin 710 -> 0 bytes images/icons/chart_line.png | Bin 526 -> 0 bytes images/icons/chart_organisation.png | Bin 444 -> 0 bytes images/icons/chart_pie.png | Bin 918 -> 0 bytes images/icons/clock.png | Bin 882 -> 0 bytes images/icons/clock_play.png | Bin 943 -> 0 bytes images/icons/clock_red.png | Bin 889 -> 0 bytes images/icons/clock_stop.png | Bin 922 -> 0 bytes images/icons/cog.png | Bin 512 -> 0 bytes images/icons/coins.png | Bin 732 -> 0 bytes images/icons/coins_add.png | Bin 789 -> 0 bytes images/icons/coins_delete.png | Bin 775 -> 0 bytes images/icons/color_swatch.png | Bin 209 -> 0 bytes images/icons/color_wheel.png | Bin 892 -> 0 bytes images/icons/comment.png | Bin 413 -> 0 bytes images/icons/comment_add.png | Bin 530 -> 0 bytes images/icons/comment_delete.png | Bin 548 -> 0 bytes images/icons/comment_edit.png | Bin 644 -> 0 bytes images/icons/comments.gif | Bin 89 -> 0 bytes images/icons/comments.png | Bin 557 -> 0 bytes images/icons/comments_add.png | Bin 648 -> 0 bytes images/icons/comments_delete.png | Bin 670 -> 0 bytes images/icons/compress.png | Bin 766 -> 0 bytes images/icons/computer.png | Bin 667 -> 0 bytes images/icons/connect.png | Bin 748 -> 0 bytes images/icons/contrast.png | Bin 434 -> 0 bytes images/icons/control_eject.png | Bin 603 -> 0 bytes images/icons/control_eject_blue.png | Bin 727 -> 0 bytes images/icons/control_end.png | Bin 621 -> 0 bytes images/icons/control_end_blue.png | Bin 737 -> 0 bytes images/icons/control_equalizer.png | Bin 432 -> 0 bytes images/icons/control_equalizer_blue.png | Bin 764 -> 0 bytes images/icons/control_fastforward.png | Bin 607 -> 0 bytes images/icons/control_fastforward_blue.png | Bin 736 -> 0 bytes images/icons/control_pause.png | Bin 598 -> 0 bytes images/icons/control_pause_blue.png | Bin 721 -> 0 bytes images/icons/control_play.png | Bin 592 -> 0 bytes images/icons/control_play_blue.png | Bin 717 -> 0 bytes images/icons/control_repeat.png | Bin 422 -> 0 bytes images/icons/control_repeat_blue.png | Bin 750 -> 0 bytes images/icons/control_rewind.png | Bin 614 -> 0 bytes images/icons/control_rewind_blue.png | Bin 745 -> 0 bytes images/icons/control_start.png | Bin 604 -> 0 bytes images/icons/control_start_blue.png | Bin 720 -> 0 bytes images/icons/controller.png | Bin 666 -> 0 bytes images/icons/creditcards.png | Bin 693 -> 0 bytes images/icons/cross.png | Bin 655 -> 0 bytes images/icons/css.png | Bin 524 -> 0 bytes images/icons/cup.png | Bin 633 -> 0 bytes images/icons/cursor.png | Bin 354 -> 0 bytes images/icons/cut.png | Bin 648 -> 0 bytes images/icons/cut_red.png | Bin 650 -> 0 bytes images/icons/database.png | Bin 390 -> 0 bytes images/icons/date.png | Bin 626 -> 0 bytes images/icons/date_magnify.png | Bin 711 -> 0 bytes images/icons/date_next.png | Bin 688 -> 0 bytes images/icons/date_previous.png | Bin 720 -> 0 bytes images/icons/delete.png | Bin 715 -> 0 bytes images/icons/disconnect.png | Bin 796 -> 0 bytes images/icons/disk.gif | Bin 1061 -> 0 bytes images/icons/disk.png | Bin 620 -> 0 bytes images/icons/disk_multiple.png | Bin 691 -> 0 bytes images/icons/door.png | Bin 412 -> 0 bytes images/icons/door_in.png | Bin 693 -> 0 bytes images/icons/door_open.png | Bin 508 -> 0 bytes images/icons/door_out.png | Bin 688 -> 0 bytes images/icons/down-arrow.gif | Bin 189 -> 0 bytes images/icons/drink.png | Bin 692 -> 0 bytes images/icons/drink_empty.png | Bin 433 -> 0 bytes images/icons/drive.png | Bin 346 -> 0 bytes images/icons/dvd.png | Bin 764 -> 0 bytes images/icons/email.gif | Bin 1014 -> 0 bytes images/icons/email.png | Bin 641 -> 0 bytes images/icons/email_add.png | Bin 761 -> 0 bytes images/icons/email_attach.png | Bin 793 -> 0 bytes images/icons/email_delete.png | Bin 756 -> 0 bytes images/icons/email_edit.png | Bin 756 -> 0 bytes images/icons/email_error.png | Bin 792 -> 0 bytes images/icons/email_go.png | Bin 754 -> 0 bytes images/icons/email_link.png | Bin 821 -> 0 bytes images/icons/email_open.png | Bin 783 -> 0 bytes images/icons/email_open_image.png | Bin 811 -> 0 bytes images/icons/emoticon_evilgrin.png | Bin 727 -> 0 bytes images/icons/emoticon_grin.png | Bin 714 -> 0 bytes images/icons/emoticon_happy.png | Bin 731 -> 0 bytes images/icons/emoticon_smile.gif | Bin 1025 -> 0 bytes images/icons/emoticon_smile.png | Bin 725 -> 0 bytes images/icons/emoticon_surprised.png | Bin 741 -> 0 bytes images/icons/emoticon_tongue.png | Bin 727 -> 0 bytes images/icons/emoticon_unhappy.png | Bin 723 -> 0 bytes images/icons/emoticon_waii.png | Bin 737 -> 0 bytes images/icons/emoticon_wink.png | Bin 712 -> 0 bytes images/icons/error.gif | Bin 994 -> 0 bytes images/icons/error.png | Bin 666 -> 0 bytes images/icons/error_add.png | Bin 710 -> 0 bytes images/icons/error_delete.png | Bin 729 -> 0 bytes images/icons/error_go.png | Bin 734 -> 0 bytes images/icons/exclamation.png | Bin 701 -> 0 bytes images/icons/eye.png | Bin 750 -> 0 bytes images/icons/feed.png | Bin 691 -> 0 bytes images/icons/female.png | Bin 590 -> 0 bytes images/icons/film.png | Bin 653 -> 0 bytes images/icons/find.png | Bin 659 -> 0 bytes images/icons/flag_blue.png | Bin 671 -> 0 bytes images/icons/flag_green.png | Bin 672 -> 0 bytes images/icons/flag_orange.png | Bin 669 -> 0 bytes images/icons/flag_pink.png | Bin 651 -> 0 bytes images/icons/flag_purple.png | Bin 656 -> 0 bytes images/icons/flag_red.png | Bin 665 -> 0 bytes images/icons/flag_yellow.png | Bin 671 -> 0 bytes images/icons/folder.png | Bin 537 -> 0 bytes images/icons/folder_delete.png | Bin 666 -> 0 bytes images/icons/folder_error.png | Bin 727 -> 0 bytes images/icons/folder_link.png | Bin 785 -> 0 bytes images/icons/folder_page_white.png | Bin 639 -> 0 bytes images/icons/folder_star.png | Bin 755 -> 0 bytes images/icons/folder_user.png | Bin 730 -> 0 bytes images/icons/font.png | Bin 567 -> 0 bytes images/icons/font_add.png | Bin 634 -> 0 bytes images/icons/font_delete.png | Bin 661 -> 0 bytes images/icons/font_go.png | Bin 700 -> 0 bytes images/icons/group.gif | Bin 1014 -> 0 bytes images/icons/group.png | Bin 753 -> 0 bytes images/icons/heart.png | Bin 749 -> 0 bytes images/icons/heart_add.png | Bin 820 -> 0 bytes images/icons/heart_delete.png | Bin 823 -> 0 bytes images/icons/help.gif | Bin 1024 -> 0 bytes images/icons/help.png | Bin 786 -> 0 bytes images/icons/hourglass.png | Bin 744 -> 0 bytes images/icons/house.gif | Bin 1027 -> 0 bytes images/icons/house.png | Bin 806 -> 0 bytes images/icons/house_go.png | Bin 861 -> 0 bytes images/icons/house_link.png | Bin 868 -> 0 bytes images/icons/html.png | Bin 578 -> 0 bytes images/icons/icon-recommend.gif | Bin 85 -> 0 bytes images/icons/image.png | Bin 516 -> 0 bytes images/icons/image_add.png | Bin 653 -> 0 bytes images/icons/image_delete.png | Bin 653 -> 0 bytes images/icons/image_edit.png | Bin 783 -> 0 bytes images/icons/image_link.png | Bin 773 -> 0 bytes images/icons/images.png | Bin 661 -> 0 bytes images/icons/information.png | Bin 778 -> 0 bytes images/icons/ipod.png | Bin 463 -> 0 bytes images/icons/joystick.png | Bin 559 -> 0 bytes images/icons/key.png | Bin 612 -> 0 bytes images/icons/key_add.png | Bin 703 -> 0 bytes images/icons/key_delete.png | Bin 724 -> 0 bytes images/icons/key_go.png | Bin 744 -> 0 bytes images/icons/keyboard.png | Bin 570 -> 0 bytes images/icons/layers.png | Bin 597 -> 0 bytes images/icons/layout.png | Bin 480 -> 0 bytes images/icons/layout_add.png | Bin 577 -> 0 bytes images/icons/layout_content.png | Bin 519 -> 0 bytes images/icons/lightbulb.gif | Bin 1022 -> 0 bytes images/icons/lightbulb.png | Bin 782 -> 0 bytes images/icons/lightbulb_off.png | Bin 700 -> 0 bytes images/icons/lightning.png | Bin 634 -> 0 bytes images/icons/link.png | Bin 343 -> 0 bytes images/icons/lock.png | Bin 749 -> 0 bytes images/icons/lock_open.png | Bin 727 -> 0 bytes images/icons/lorry.png | Bin 582 -> 0 bytes images/icons/magifier_zoom_out.png | Bin 657 -> 0 bytes images/icons/magnifier.gif | Bin 568 -> 0 bytes images/icons/magnifier.png | Bin 615 -> 0 bytes images/icons/magnifier_zoom_in.png | Bin 680 -> 0 bytes images/icons/male.png | Bin 629 -> 0 bytes images/icons/map.png | Bin 804 -> 0 bytes images/icons/medal_bronze_1.png | Bin 640 -> 0 bytes images/icons/medal_bronze_2.png | Bin 654 -> 0 bytes images/icons/medal_bronze_3.png | Bin 646 -> 0 bytes images/icons/medal_bronze_add.png | Bin 747 -> 0 bytes images/icons/medal_bronze_delete.png | Bin 730 -> 0 bytes images/icons/medal_gold_1.png | Bin 629 -> 0 bytes images/icons/medal_gold_2.png | Bin 641 -> 0 bytes images/icons/medal_gold_3.png | Bin 634 -> 0 bytes images/icons/medal_gold_add.png | Bin 733 -> 0 bytes images/icons/medal_gold_delete.png | Bin 724 -> 0 bytes images/icons/medal_silver_1.png | Bin 589 -> 0 bytes images/icons/medal_silver_2.png | Bin 600 -> 0 bytes images/icons/medal_silver_3.png | Bin 597 -> 0 bytes images/icons/medal_silver_add.png | Bin 727 -> 0 bytes images/icons/medal_silver_delete.png | Bin 714 -> 0 bytes images/icons/money.png | Bin 738 -> 0 bytes images/icons/money_add.png | Bin 784 -> 0 bytes images/icons/money_delete.png | Bin 806 -> 0 bytes images/icons/money_dollar.png | Bin 630 -> 0 bytes images/icons/money_euro.png | Bin 605 -> 0 bytes images/icons/money_pound.png | Bin 565 -> 0 bytes images/icons/money_yen.png | Bin 562 -> 0 bytes images/icons/monitor.png | Bin 612 -> 0 bytes images/icons/mouse.png | Bin 634 -> 0 bytes images/icons/mouse_add.png | Bin 729 -> 0 bytes images/icons/mouse_delete.png | Bin 741 -> 0 bytes images/icons/mouse_error.png | Bin 790 -> 0 bytes images/icons/music.png | Bin 385 -> 0 bytes images/icons/new.png | Bin 378 -> 0 bytes images/icons/newspaper.png | Bin 658 -> 0 bytes images/icons/note.gif | Bin 588 -> 0 bytes images/icons/note.png | Bin 500 -> 0 bytes images/icons/overlays.png | Bin 716 -> 0 bytes images/icons/package.png | Bin 853 -> 0 bytes images/icons/page.gif | Bin 1068 -> 0 bytes images/icons/page.png | Bin 635 -> 0 bytes images/icons/page_add.gif | Bin 1070 -> 0 bytes images/icons/page_add.png | Bin 739 -> 0 bytes images/icons/page_attach.png | Bin 794 -> 0 bytes images/icons/page_code.png | Bin 818 -> 0 bytes images/icons/page_copy.gif | Bin 1041 -> 0 bytes images/icons/page_copy.png | Bin 663 -> 0 bytes images/icons/page_delete.png | Bin 740 -> 0 bytes images/icons/page_edit.png | Bin 807 -> 0 bytes images/icons/page_error.png | Bin 793 -> 0 bytes images/icons/page_excel.gif | Bin 1060 -> 0 bytes images/icons/page_excel.png | Bin 817 -> 0 bytes images/icons/page_find.png | Bin 879 -> 0 bytes images/icons/page_gear.png | Bin 833 -> 0 bytes images/icons/page_go.png | Bin 779 -> 0 bytes images/icons/page_green.png | Bin 621 -> 0 bytes images/icons/page_key.png | Bin 801 -> 0 bytes images/icons/page_lightning.png | Bin 839 -> 0 bytes images/icons/page_link.png | Bin 830 -> 0 bytes images/icons/page_paintbrush.png | Bin 813 -> 0 bytes images/icons/page_paste.png | Bin 703 -> 0 bytes images/icons/page_red.png | Bin 641 -> 0 bytes images/icons/page_refresh.gif | Bin 1076 -> 0 bytes images/icons/page_refresh.png | Bin 858 -> 0 bytes images/icons/page_save.png | Bin 774 -> 0 bytes images/icons/page_white.png | Bin 294 -> 0 bytes images/icons/page_white_acrobat.png | Bin 591 -> 0 bytes images/icons/page_white_actionscript.png | Bin 664 -> 0 bytes images/icons/page_white_add.png | Bin 512 -> 0 bytes images/icons/page_white_c.png | Bin 587 -> 0 bytes images/icons/page_white_camera.png | Bin 656 -> 0 bytes images/icons/page_white_cd.png | Bin 666 -> 0 bytes images/icons/page_white_code.png | Bin 603 -> 0 bytes images/icons/page_white_code_red.png | Bin 587 -> 0 bytes images/icons/page_white_copy.png | Bin 309 -> 0 bytes images/icons/page_white_csharp.png | Bin 700 -> 0 bytes images/icons/page_white_cup.png | Bin 639 -> 0 bytes images/icons/page_white_delete.png | Bin 536 -> 0 bytes images/icons/page_white_dvd.png | Bin 638 -> 0 bytes images/icons/page_white_error.png | Bin 623 -> 0 bytes images/icons/page_white_find.png | Bin 676 -> 0 bytes images/icons/page_white_flash.png | Bin 582 -> 0 bytes images/icons/page_white_freehand.png | Bin 639 -> 0 bytes images/icons/page_white_gear.png | Bin 402 -> 0 bytes images/icons/page_white_get.png | Bin 516 -> 0 bytes images/icons/page_white_go.png | Bin 612 -> 0 bytes images/icons/page_white_h.png | Bin 603 -> 0 bytes images/icons/page_white_horizontal.png | Bin 296 -> 0 bytes images/icons/page_white_key.png | Bin 616 -> 0 bytes images/icons/page_white_lightning.png | Bin 669 -> 0 bytes images/icons/page_white_link.png | Bin 614 -> 0 bytes images/icons/page_white_magnify.png | Bin 554 -> 0 bytes images/icons/page_white_medal.png | Bin 706 -> 0 bytes images/icons/page_white_office.png | Bin 779 -> 0 bytes images/icons/page_white_paint.png | Bin 688 -> 0 bytes images/icons/page_white_paintbrush.png | Bin 618 -> 0 bytes images/icons/page_white_paste.png | Bin 620 -> 0 bytes images/icons/page_white_put.png | Bin 523 -> 0 bytes images/icons/page_white_stack.png | Bin 317 -> 0 bytes images/icons/page_white_star.png | Bin 565 -> 0 bytes images/icons/page_white_text.png | Bin 342 -> 0 bytes images/icons/page_white_text_width.png | Bin 315 -> 0 bytes images/icons/page_white_tux.png | Bin 668 -> 0 bytes images/icons/page_white_vector.png | Bin 644 -> 0 bytes images/icons/page_white_visualstudio.png | Bin 702 -> 0 bytes images/icons/page_white_width.png | Bin 309 -> 0 bytes images/icons/page_white_word.png | Bin 651 -> 0 bytes images/icons/page_white_world.png | Bin 734 -> 0 bytes images/icons/page_white_wrench.png | Bin 613 -> 0 bytes images/icons/page_white_zip.png | Bin 386 -> 0 bytes images/icons/page_word.png | Bin 777 -> 0 bytes images/icons/page_world.png | Bin 903 -> 0 bytes images/icons/paintbrush.png | Bin 548 -> 0 bytes images/icons/paintcan.png | Bin 707 -> 0 bytes images/icons/palette.png | Bin 856 -> 0 bytes images/icons/paperclip.gif | Bin 384 -> 0 bytes images/icons/paste_plain.png | Bin 605 -> 0 bytes images/icons/pencil.png | Bin 450 -> 0 bytes images/icons/phone.png | Bin 488 -> 0 bytes images/icons/phone_sound.png | Bin 703 -> 0 bytes images/icons/photo.png | Bin 589 -> 0 bytes images/icons/photos.png | Bin 647 -> 0 bytes images/icons/picture.png | Bin 606 -> 0 bytes images/icons/pictures.png | Bin 704 -> 0 bytes images/icons/pilcrow.png | Bin 361 -> 0 bytes images/icons/pill.png | Bin 719 -> 0 bytes images/icons/plugin.png | Bin 591 -> 0 bytes images/icons/printer.gif | Bin 1035 -> 0 bytes images/icons/printer.png | Bin 731 -> 0 bytes images/icons/printer_error.png | Bin 854 -> 0 bytes images/icons/question.png | Bin 360 -> 0 bytes images/icons/rainbow.png | Bin 655 -> 0 bytes images/icons/report.png | Bin 649 -> 0 bytes images/icons/resultset_first.gif | Bin 553 -> 0 bytes images/icons/resultset_first.png | Bin 522 -> 0 bytes images/icons/resultset_last.gif | Bin 553 -> 0 bytes images/icons/resultset_last.png | Bin 524 -> 0 bytes images/icons/resultset_next.gif | Bin 303 -> 0 bytes images/icons/resultset_next.png | Bin 395 -> 0 bytes images/icons/resultset_previous.gif | Bin 304 -> 0 bytes images/icons/resultset_previous.png | Bin 389 -> 0 bytes images/icons/rosette.png | Bin 673 -> 0 bytes images/icons/rss.png | Bin 530 -> 0 bytes images/icons/script.png | Bin 748 -> 0 bytes images/icons/server.png | Bin 530 -> 0 bytes images/icons/shading.png | Bin 225 -> 0 bytes images/icons/shield.png | Bin 702 -> 0 bytes images/icons/sitemap.png | Bin 278 -> 0 bytes images/icons/sitemap_color.png | Bin 406 -> 0 bytes images/icons/sort_asc.gif | Bin 335 -> 0 bytes images/icons/sort_desc.gif | Bin 327 -> 0 bytes images/icons/sound.png | Bin 610 -> 0 bytes images/icons/sound_add.png | Bin 684 -> 0 bytes images/icons/sound_delete.png | Bin 711 -> 0 bytes images/icons/sound_low.png | Bin 524 -> 0 bytes images/icons/sound_mute.png | Bin 474 -> 0 bytes images/icons/sound_none.png | Bin 417 -> 0 bytes images/icons/spellcheck.png | Bin 603 -> 0 bytes images/icons/sport_8ball.png | Bin 490 -> 0 bytes images/icons/sport_basketball.png | Bin 977 -> 0 bytes images/icons/sport_football.png | Bin 875 -> 0 bytes images/icons/sport_golf.png | Bin 504 -> 0 bytes images/icons/sport_raquet.png | Bin 719 -> 0 bytes images/icons/sport_shuttlecock.png | Bin 683 -> 0 bytes images/icons/sport_soccer.png | Bin 517 -> 0 bytes images/icons/sport_tennis.png | Bin 884 -> 0 bytes images/icons/star.gif | Bin 994 -> 0 bytes images/icons/star.png | Bin 670 -> 0 bytes images/icons/status_away.png | Bin 794 -> 0 bytes images/icons/status_busy.png | Bin 751 -> 0 bytes images/icons/status_offline.png | Bin 422 -> 0 bytes images/icons/status_online.png | Bin 722 -> 0 bytes images/icons/stop.png | Bin 700 -> 0 bytes images/icons/sum.png | Bin 289 -> 0 bytes images/icons/table.gif | Bin 600 -> 0 bytes images/icons/table.png | Bin 566 -> 0 bytes images/icons/table_edit.png | Bin 744 -> 0 bytes images/icons/table_row_delete.gif | Bin 607 -> 0 bytes images/icons/table_row_delete.png | Bin 629 -> 0 bytes images/icons/table_row_insert.gif | Bin 610 -> 0 bytes images/icons/table_row_insert.png | Bin 641 -> 0 bytes images/icons/table_save.png | Bin 723 -> 0 bytes images/icons/table_sort.png | Bin 678 -> 0 bytes images/icons/tag.png | Bin 389 -> 0 bytes images/icons/tag_blue.png | Bin 586 -> 0 bytes images/icons/tag_green.png | Bin 613 -> 0 bytes images/icons/tag_orange.png | Bin 586 -> 0 bytes images/icons/tag_pink.png | Bin 579 -> 0 bytes images/icons/tag_purple.png | Bin 599 -> 0 bytes images/icons/tag_red.png | Bin 592 -> 0 bytes images/icons/tag_yellow.png | Bin 586 -> 0 bytes images/icons/telephone.png | Bin 791 -> 0 bytes images/icons/television.png | Bin 696 -> 0 bytes images/icons/television_add.png | Bin 809 -> 0 bytes images/icons/television_delete.png | Bin 810 -> 0 bytes images/icons/text_uppercase.png | Bin 747 -> 0 bytes images/icons/textfield.png | Bin 153 -> 0 bytes images/icons/thumb_down.png | Bin 601 -> 0 bytes images/icons/thumb_up.png | Bin 619 -> 0 bytes images/icons/tick.png | Bin 537 -> 0 bytes images/icons/time.png | Bin 793 -> 0 bytes images/icons/timeline_marker.png | Bin 327 -> 0 bytes images/icons/transmit.png | Bin 749 -> 0 bytes images/icons/tux.png | Bin 696 -> 0 bytes images/icons/user.gif | Bin 1001 -> 0 bytes images/icons/user.png | Bin 741 -> 0 bytes images/icons/user_add.png | Bin 746 -> 0 bytes images/icons/user_comment.png | Bin 743 -> 0 bytes images/icons/user_delete.png | Bin 767 -> 0 bytes images/icons/user_edit.png | Bin 833 -> 0 bytes images/icons/user_female.png | Bin 663 -> 0 bytes images/icons/user_go.png | Bin 793 -> 0 bytes images/icons/user_gray.png | Bin 706 -> 0 bytes images/icons/user_green.png | Bin 722 -> 0 bytes images/icons/user_orange.png | Bin 723 -> 0 bytes images/icons/user_red.png | Bin 717 -> 0 bytes images/icons/user_suit.png | Bin 748 -> 0 bytes images/icons/v_sprite.gif | Bin 67844 -> 0 bytes images/icons/vcard.png | Bin 533 -> 0 bytes images/icons/vcard_add.png | Bin 661 -> 0 bytes images/icons/vcard_delete.png | Bin 651 -> 0 bytes images/icons/vcard_edit.png | Bin 775 -> 0 bytes images/icons/vector.png | Bin 481 -> 0 bytes images/icons/vector_add.png | Bin 616 -> 0 bytes images/icons/vector_delete.png | Bin 635 -> 0 bytes images/icons/wand.png | Bin 570 -> 0 bytes images/icons/weather_clouds.png | Bin 581 -> 0 bytes images/icons/weather_cloudy.png | Bin 694 -> 0 bytes images/icons/weather_lightning.png | Bin 641 -> 0 bytes images/icons/weather_rain.png | Bin 626 -> 0 bytes images/icons/weather_snow.png | Bin 341 -> 0 bytes images/icons/weather_sun.png | Bin 623 -> 0 bytes images/icons/webcam.png | Bin 728 -> 0 bytes images/icons/world.png | Bin 923 -> 0 bytes images/icons/world_link.png | Bin 957 -> 0 bytes images/icons/wrench.gif | Bin 571 -> 0 bytes images/icons/wrench.png | Bin 610 -> 0 bytes images/icons/wrench_orange.png | Bin 584 -> 0 bytes images/icons/zoom.png | Bin 692 -> 0 bytes images/icons/zoom_in.png | Bin 725 -> 0 bytes images/icons/zoom_out.png | Bin 708 -> 0 bytes images/ui/blue-grad-1.gif | Bin 264 -> 0 bytes images/ui/checked_box.gif | Bin 928 -> 0 bytes images/ui/circle-cutout.gif | Bin 68 -> 0 bytes images/ui/down-arrow.gif | Bin 189 -> 0 bytes images/ui/down-arrow1.gif | Bin 110 -> 0 bytes images/ui/loading.gif | Bin 1737 -> 0 bytes images/ui/loading_startup.gif | Bin 439 -> 0 bytes images/ui/next_pointer.gif | Bin 165 -> 0 bytes images/ui/no_img/no_img_f.gif | Bin 2662 -> 0 bytes images/ui/no_img/no_img_m.gif | Bin 1996 -> 0 bytes images/ui/plain_box.gif | Bin 100 -> 0 bytes images/ui/prev_pointer.gif | Bin 114 -> 0 bytes images/ui/right-arrow.gif | Bin 187 -> 0 bytes images/ui/square_loading.gif | Bin 404 -> 0 bytes images/ui/star.gif | Bin 354 -> 0 bytes images/ui/star_plain.gif | Bin 210 -> 0 bytes images/ui/tick.gif | Bin 207 -> 0 bytes index.cgi | 49 -- js/{ => legacy}/app.js | 48 +- js/{ => legacy}/form.compressed.js | 0 js/{ => legacy}/globals.js | 68 ++- js/{ => legacy}/jquery/excanvas.min.js | 0 .../jqplot.BezierCurveRenderer.js | 0 .../jqplot.BezierCurveRenderer.min.js | 0 .../jqplot-plugins/jqplot.barRenderer.js | 0 .../jqplot-plugins/jqplot.barRenderer.min.js | 0 .../jqplot-plugins/jqplot.blockRenderer.js | 0 .../jqplot.blockRenderer.min.js | 0 .../jqplot-plugins/jqplot.bubbleRenderer.js | 0 .../jqplot.bubbleRenderer.min.js | 0 .../jqplot.canvasAxisLabelRenderer.js | 0 .../jqplot.canvasAxisLabelRenderer.min.js | 0 .../jqplot.canvasAxisTickRenderer.js | 0 .../jqplot.canvasAxisTickRenderer.min.js | 0 .../jqplot-plugins/jqplot.canvasOverlay.js | 0 .../jqplot.canvasOverlay.min.js | 0 .../jqplot.canvasTextRenderer.js | 0 .../jqplot.canvasTextRenderer.min.js | 0 .../jqplot.categoryAxisRenderer.js | 0 .../jqplot.categoryAxisRenderer.min.js | 0 .../jquery/jqplot-plugins/jqplot.ciParser.js | 0 .../jqplot-plugins/jqplot.ciParser.min.js | 0 .../jquery/jqplot-plugins/jqplot.cursor.js | 0 .../jqplot-plugins/jqplot.cursor.min.js | 0 .../jqplot-plugins/jqplot.dateAxisRenderer.js | 0 .../jqplot.dateAxisRenderer.min.js | 0 .../jqplot-plugins/jqplot.donutRenderer.js | 0 .../jqplot.donutRenderer.min.js | 0 .../jquery/jqplot-plugins/jqplot.dragable.js | 0 .../jqplot-plugins/jqplot.dragable.min.js | 0 .../jqplot.enhancedLegendRenderer.js | 0 .../jqplot.enhancedLegendRenderer.min.js | 0 .../jqplot-plugins/jqplot.funnelRenderer.js | 0 .../jqplot.funnelRenderer.min.js | 0 .../jqplot-plugins/jqplot.highlighter.js | 0 .../jqplot-plugins/jqplot.highlighter.min.js | 0 .../jquery/jqplot-plugins/jqplot.json2.js | 0 .../jquery/jqplot-plugins/jqplot.json2.min.js | 0 .../jqplot-plugins/jqplot.logAxisRenderer.js | 0 .../jqplot.logAxisRenderer.min.js | 0 .../jqplot.mekkoAxisRenderer.js | 0 .../jqplot.mekkoAxisRenderer.min.js | 0 .../jqplot-plugins/jqplot.mekkoRenderer.js | 0 .../jqplot.mekkoRenderer.min.js | 0 .../jqplot.meterGaugeRenderer.js | 0 .../jqplot.meterGaugeRenderer.min.js | 0 .../jqplot-plugins/jqplot.ohlcRenderer.js | 0 .../jqplot-plugins/jqplot.ohlcRenderer.min.js | 0 .../jqplot-plugins/jqplot.pieRenderer.js | 0 .../jqplot-plugins/jqplot.pieRenderer.min.js | 0 .../jqplot-plugins/jqplot.pointLabels.js | 0 .../jqplot-plugins/jqplot.pointLabels.min.js | 0 .../jquery/jqplot-plugins/jqplot.trendline.js | 0 .../jqplot-plugins/jqplot.trendline.min.js | 0 js/{ => legacy}/jquery/jquery-ui.min.js | 0 js/{ => legacy}/jquery/jquery.flot.js | 0 js/{ => legacy}/jquery/jquery.jqplot.min.js | 0 js/{ => legacy}/jquery/jquery.min.js | 0 js/{ => legacy}/model/doclist.js | 0 js/{ => legacy}/model/local_data.js | 0 js/{ => legacy}/report.compressed.js | 0 .../tiny_mce_33/custom_content.css | 0 js/{ => legacy}/tiny_mce_33/jquery.tinymce.js | 0 js/{ => legacy}/tiny_mce_33/langs/en.js | 0 js/{ => legacy}/tiny_mce_33/license.txt | 0 .../tiny_mce_33/plugins/advhr/css/advhr.css | 0 .../plugins/advhr/editor_plugin.js | 0 .../plugins/advhr/editor_plugin_src.js | 0 .../tiny_mce_33/plugins/advhr/js/rule.js | 0 .../tiny_mce_33/plugins/advhr/langs/en_dlg.js | 0 .../tiny_mce_33/plugins/advhr/rule.htm | 0 .../plugins/advimage/css/advimage.css | 0 .../plugins/advimage/editor_plugin.js | 0 .../plugins/advimage/editor_plugin_src.js | 0 .../tiny_mce_33/plugins/advimage/image.htm | 0 .../plugins/advimage/img/sample.gif | Bin .../tiny_mce_33/plugins/advimage/js/image.js | 0 .../plugins/advimage/langs/en_dlg.js | 0 .../plugins/advlink/css/advlink.css | 0 .../plugins/advlink/editor_plugin.js | 0 .../plugins/advlink/editor_plugin_src.js | 0 .../tiny_mce_33/plugins/advlink/js/advlink.js | 0 .../plugins/advlink/langs/en_dlg.js | 0 .../tiny_mce_33/plugins/advlink/link.htm | 0 .../plugins/advlist/editor_plugin.js | 0 .../plugins/advlist/editor_plugin_src.js | 0 .../plugins/autoresize/editor_plugin.js | 0 .../plugins/autoresize/editor_plugin_src.js | 0 .../plugins/autosave/editor_plugin.js | 0 .../plugins/autosave/editor_plugin_src.js | 0 .../tiny_mce_33/plugins/autosave/langs/en.js | 0 .../plugins/bbcode/editor_plugin.js | 0 .../plugins/bbcode/editor_plugin_src.js | 0 .../plugins/contextmenu/editor_plugin.js | 0 .../plugins/contextmenu/editor_plugin_src.js | 0 .../plugins/directionality/editor_plugin.js | 0 .../directionality/editor_plugin_src.js | 0 .../plugins/emotions/editor_plugin.js | 0 .../plugins/emotions/editor_plugin_src.js | 0 .../tiny_mce_33/plugins/emotions/emotions.htm | 0 .../plugins/emotions/img/smiley-cool.gif | Bin .../plugins/emotions/img/smiley-cry.gif | Bin .../emotions/img/smiley-embarassed.gif | Bin .../emotions/img/smiley-foot-in-mouth.gif | Bin .../plugins/emotions/img/smiley-frown.gif | Bin .../plugins/emotions/img/smiley-innocent.gif | Bin .../plugins/emotions/img/smiley-kiss.gif | Bin .../plugins/emotions/img/smiley-laughing.gif | Bin .../emotions/img/smiley-money-mouth.gif | Bin .../plugins/emotions/img/smiley-sealed.gif | Bin .../plugins/emotions/img/smiley-smile.gif | Bin .../plugins/emotions/img/smiley-surprised.gif | Bin .../emotions/img/smiley-tongue-out.gif | Bin .../plugins/emotions/img/smiley-undecided.gif | Bin .../plugins/emotions/img/smiley-wink.gif | Bin .../plugins/emotions/img/smiley-yell.gif | Bin .../plugins/emotions/js/emotions.js | 0 .../plugins/emotions/langs/en_dlg.js | 0 .../tiny_mce_33/plugins/example/dialog.htm | 0 .../plugins/example/editor_plugin.js | 0 .../plugins/example/editor_plugin_src.js | 0 .../plugins/example/img/example.gif | Bin .../tiny_mce_33/plugins/example/js/dialog.js | 0 .../tiny_mce_33/plugins/example/langs/en.js | 0 .../plugins/example/langs/en_dlg.js | 0 .../plugins/fullpage/css/fullpage.css | 0 .../plugins/fullpage/editor_plugin.js | 0 .../plugins/fullpage/editor_plugin_src.js | 0 .../tiny_mce_33/plugins/fullpage/fullpage.htm | 0 .../plugins/fullpage/js/fullpage.js | 0 .../plugins/fullpage/langs/en_dlg.js | 0 .../plugins/fullscreen/editor_plugin.js | 0 .../plugins/fullscreen/editor_plugin_src.js | 0 .../plugins/fullscreen/fullscreen.htm | 0 .../plugins/iespell/editor_plugin.js | 0 .../plugins/iespell/editor_plugin_src.js | 0 .../plugins/inlinepopups/editor_plugin.js | 0 .../plugins/inlinepopups/editor_plugin_src.js | 0 .../skins/clearlooks2/img/alert.gif | Bin .../skins/clearlooks2/img/button.gif | Bin .../skins/clearlooks2/img/buttons.gif | Bin .../skins/clearlooks2/img/confirm.gif | Bin .../skins/clearlooks2/img/corners.gif | Bin .../skins/clearlooks2/img/horizontal.gif | Bin .../skins/clearlooks2/img/vertical.gif | Bin .../inlinepopups/skins/clearlooks2/window.css | 0 .../plugins/inlinepopups/template.htm | 0 .../plugins/insertdatetime/editor_plugin.js | 0 .../insertdatetime/editor_plugin_src.js | 0 .../plugins/layer/editor_plugin.js | 0 .../plugins/layer/editor_plugin_src.js | 0 .../plugins/legacyoutput/editor_plugin.js | 0 .../plugins/legacyoutput/editor_plugin_src.js | 0 .../tiny_mce_33/plugins/media/css/content.css | 0 .../tiny_mce_33/plugins/media/css/media.css | 0 .../plugins/media/editor_plugin.js | 0 .../plugins/media/editor_plugin_src.js | 0 .../tiny_mce_33/plugins/media/img/flash.gif | Bin .../plugins/media/img/flv_player.swf | Bin .../plugins/media/img/quicktime.gif | Bin .../plugins/media/img/realmedia.gif | Bin .../plugins/media/img/shockwave.gif | Bin .../tiny_mce_33/plugins/media/img/trans.gif | Bin .../plugins/media/img/windowsmedia.gif | Bin .../tiny_mce_33/plugins/media/js/embed.js | 0 .../tiny_mce_33/plugins/media/js/media.js | 0 .../tiny_mce_33/plugins/media/langs/en_dlg.js | 0 .../tiny_mce_33/plugins/media/media.htm | 0 .../plugins/nonbreaking/editor_plugin.js | 0 .../plugins/nonbreaking/editor_plugin_src.js | 0 .../plugins/noneditable/editor_plugin.js | 0 .../plugins/noneditable/editor_plugin_src.js | 0 .../plugins/pagebreak/css/content.css | 0 .../plugins/pagebreak/editor_plugin.js | 0 .../plugins/pagebreak/editor_plugin_src.js | 0 .../plugins/pagebreak/img/pagebreak.gif | Bin .../plugins/pagebreak/img/trans.gif | Bin .../plugins/paste/editor_plugin.js | 0 .../plugins/paste/editor_plugin_src.js | 0 .../tiny_mce_33/plugins/paste/js/pastetext.js | 0 .../tiny_mce_33/plugins/paste/js/pasteword.js | 0 .../tiny_mce_33/plugins/paste/langs/en_dlg.js | 0 .../tiny_mce_33/plugins/paste/pastetext.htm | 0 .../tiny_mce_33/plugins/paste/pasteword.htm | 0 .../plugins/preview/editor_plugin.js | 0 .../plugins/preview/editor_plugin_src.js | 0 .../tiny_mce_33/plugins/preview/example.html | 0 .../plugins/preview/jscripts/embed.js | 0 .../tiny_mce_33/plugins/preview/preview.html | 0 .../plugins/print/editor_plugin.js | 0 .../plugins/print/editor_plugin_src.js | 0 .../tiny_mce_33/plugins/save/editor_plugin.js | 0 .../plugins/save/editor_plugin_src.js | 0 .../searchreplace/css/searchreplace.css | 0 .../plugins/searchreplace/editor_plugin.js | 0 .../searchreplace/editor_plugin_src.js | 0 .../plugins/searchreplace/js/searchreplace.js | 0 .../plugins/searchreplace/langs/en_dlg.js | 0 .../plugins/searchreplace/searchreplace.htm | 0 .../plugins/spellchecker/css/content.css | 0 .../plugins/spellchecker/editor_plugin.js | 0 .../plugins/spellchecker/editor_plugin_src.js | 0 .../plugins/spellchecker/img/wline.gif | Bin .../tiny_mce_33/plugins/style/css/props.css | 0 .../plugins/style/editor_plugin.js | 0 .../plugins/style/editor_plugin_src.js | 0 .../tiny_mce_33/plugins/style/js/props.js | 0 .../tiny_mce_33/plugins/style/langs/en_dlg.js | 0 .../tiny_mce_33/plugins/style/props.htm | 0 .../plugins/tabfocus/editor_plugin.js | 0 .../plugins/tabfocus/editor_plugin_src.js | 0 .../tiny_mce_33/plugins/table/cell.htm | 0 .../tiny_mce_33/plugins/table/css/cell.css | 0 .../tiny_mce_33/plugins/table/css/row.css | 0 .../tiny_mce_33/plugins/table/css/table.css | 0 .../plugins/table/editor_plugin.js | 0 .../plugins/table/editor_plugin_src.js | 0 .../tiny_mce_33/plugins/table/js/cell.js | 0 .../plugins/table/js/merge_cells.js | 0 .../tiny_mce_33/plugins/table/js/row.js | 0 .../tiny_mce_33/plugins/table/js/table.js | 0 .../tiny_mce_33/plugins/table/langs/en_dlg.js | 0 .../tiny_mce_33/plugins/table/merge_cells.htm | 0 .../tiny_mce_33/plugins/table/row.htm | 0 .../tiny_mce_33/plugins/table/table.htm | 0 .../tiny_mce_33/plugins/template/blank.htm | 0 .../plugins/template/css/template.css | 0 .../plugins/template/editor_plugin.js | 0 .../plugins/template/editor_plugin_src.js | 0 .../plugins/template/js/template.js | 0 .../plugins/template/langs/en_dlg.js | 0 .../tiny_mce_33/plugins/template/template.htm | 0 .../plugins/visualchars/editor_plugin.js | 0 .../plugins/visualchars/editor_plugin_src.js | 0 .../plugins/wordcount/editor_plugin.js | 0 .../plugins/wordcount/editor_plugin_src.js | 0 .../tiny_mce_33/plugins/xhtmlxtras/abbr.htm | 0 .../plugins/xhtmlxtras/acronym.htm | 0 .../plugins/xhtmlxtras/attributes.htm | 0 .../tiny_mce_33/plugins/xhtmlxtras/cite.htm | 0 .../plugins/xhtmlxtras/css/attributes.css | 0 .../plugins/xhtmlxtras/css/popup.css | 0 .../tiny_mce_33/plugins/xhtmlxtras/del.htm | 0 .../plugins/xhtmlxtras/editor_plugin.js | 0 .../plugins/xhtmlxtras/editor_plugin_src.js | 0 .../tiny_mce_33/plugins/xhtmlxtras/ins.htm | 0 .../tiny_mce_33/plugins/xhtmlxtras/js/abbr.js | 0 .../plugins/xhtmlxtras/js/acronym.js | 0 .../plugins/xhtmlxtras/js/attributes.js | 0 .../tiny_mce_33/plugins/xhtmlxtras/js/cite.js | 0 .../tiny_mce_33/plugins/xhtmlxtras/js/del.js | 0 .../plugins/xhtmlxtras/js/element_common.js | 0 .../tiny_mce_33/plugins/xhtmlxtras/js/ins.js | 0 .../plugins/xhtmlxtras/langs/en_dlg.js | 0 .../tiny_mce_33/themes/advanced/about.htm | 0 .../tiny_mce_33/themes/advanced/anchor.htm | 0 .../tiny_mce_33/themes/advanced/charmap.htm | 0 .../themes/advanced/color_picker.htm | 0 .../themes/advanced/editor_template.js | 0 .../themes/advanced/editor_template_src.js | 0 .../tiny_mce_33/themes/advanced/image.htm | 0 .../themes/advanced/img/colorpicker.jpg | Bin .../tiny_mce_33/themes/advanced/img/icons.gif | Bin .../tiny_mce_33/themes/advanced/js/about.js | 0 .../tiny_mce_33/themes/advanced/js/anchor.js | 0 .../tiny_mce_33/themes/advanced/js/charmap.js | 0 .../themes/advanced/js/color_picker.js | 0 .../tiny_mce_33/themes/advanced/js/image.js | 0 .../tiny_mce_33/themes/advanced/js/link.js | 0 .../themes/advanced/js/source_editor.js | 0 .../tiny_mce_33/themes/advanced/langs/en.js | 0 .../themes/advanced/langs/en_dlg.js | 0 .../tiny_mce_33/themes/advanced/link.htm | 0 .../themes/advanced/skins/default/content.css | 0 .../themes/advanced/skins/default/dialog.css | 0 .../advanced/skins/default/img/buttons.png | Bin .../advanced/skins/default/img/items.gif | Bin .../advanced/skins/default/img/menu_arrow.gif | Bin .../advanced/skins/default/img/menu_check.gif | Bin .../advanced/skins/default/img/progress.gif | Bin .../advanced/skins/default/img/tabs.gif | Bin .../themes/advanced/skins/default/ui.css | 0 .../themes/advanced/skins/o2k7/content.css | 0 .../themes/advanced/skins/o2k7/dialog.css | 0 .../advanced/skins/o2k7/img/button_bg.png | Bin .../skins/o2k7/img/button_bg_black.png | Bin .../skins/o2k7/img/button_bg_silver.png | Bin .../themes/advanced/skins/o2k7/ui.css | 0 .../themes/advanced/skins/o2k7/ui_black.css | 0 .../themes/advanced/skins/o2k7/ui_silver.css | 0 .../themes/advanced/source_editor.htm | 0 .../themes/simple/editor_template.js | 0 .../themes/simple/editor_template_src.js | 0 .../tiny_mce_33/themes/simple/img/icons.gif | Bin .../tiny_mce_33/themes/simple/langs/en.js | 0 .../themes/simple/skins/default/content.css | 0 .../themes/simple/skins/default/ui.css | 0 .../themes/simple/skins/o2k7/content.css | 0 .../simple/skins/o2k7/img/button_bg.png | Bin .../themes/simple/skins/o2k7/ui.css | 0 js/{ => legacy}/tiny_mce_33/tiny_mce.js | 0 js/{ => legacy}/tiny_mce_33/tiny_mce_popup.js | 0 js/{ => legacy}/tiny_mce_33/tiny_mce_src.js | 0 .../tiny_mce_33/utils/editable_selects.js | 0 .../tiny_mce_33/utils/form_utils.js | 0 js/{ => legacy}/tiny_mce_33/utils/mctabs.js | 0 js/{ => legacy}/tiny_mce_33/utils/validate.js | 0 js/{ => legacy}/user.js | 0 js/{ => legacy}/utils/browser_detect.js | 0 js/{ => legacy}/utils/datatype.js | 0 js/{ => legacy}/utils/datetime.js | 0 js/{ => legacy}/utils/dom.js | 29 +- js/{ => legacy}/utils/handler.js | 0 js/{ => legacy}/utils/json.js | 0 js/{ => legacy}/utils/msgprint.js | 0 js/{ => legacy}/utils/printElement.js | 0 js/{ => legacy}/utils/rsh.compressed.js | 0 js/{ => legacy}/utils/shortcut.js | 0 js/{ => legacy}/webpage/about.js | 0 js/{ => legacy}/webpage/body.js | 0 js/{ => legacy}/webpage/docbrowser.js | 0 js/{ => legacy}/webpage/error_console.js | 0 js/legacy/webpage/freeze_page.js | 29 ++ js/{ => legacy}/webpage/history.js | 0 js/{ => legacy}/webpage/loaders.js | 0 js/{ => legacy}/webpage/page.js | 0 js/{ => legacy}/webpage/page_header.js | 0 js/{ => legacy}/webpage/search.js | 0 js/{ => legacy}/webpage/spinner.js | 0 js/{ => legacy}/webpage/uploader.js | 0 js/{ => legacy}/webpage/wntoolbar.js | 0 js/{ => legacy}/widgets/autosuggest.js | 0 js/{ => legacy}/widgets/calendar.js | 0 js/{ => legacy}/widgets/dialog.js | 0 js/{ => legacy}/widgets/export_query.js | 0 js/{ => legacy}/widgets/form/attachments.js | 0 .../widgets/form/clientscriptAPI.js | 0 js/{ => legacy}/widgets/form/email.js | 0 js/{ => legacy}/widgets/form/fields.js | 0 js/{ => legacy}/widgets/form/form.js | 0 js/{ => legacy}/widgets/form/form_comments.js | 0 .../widgets/form/form_container.js | 0 js/{ => legacy}/widgets/form/form_fields.js | 0 js/{ => legacy}/widgets/form/form_grid.js | 0 js/{ => legacy}/widgets/form/form_header.js | 0 js/{ => legacy}/widgets/form/grid.js | 0 js/{ => legacy}/widgets/form/print_format.js | 0 js/{ => legacy}/widgets/layout.js | 0 js/{ => legacy}/widgets/list_selector.js | 0 js/{ => legacy}/widgets/listing.js | 0 js/{ => legacy}/widgets/menu.js | 0 js/{ => legacy}/widgets/print_query.js | 0 .../widgets/report_builder/bargraph.js | 0 .../widgets/report_builder/calculator.js | 0 .../widgets/report_builder/datatable.js | 0 .../widgets/report_builder/report_builder.js | 0 js/{ => legacy}/widgets/select.js | 0 js/{ => legacy}/widgets/tabbedpage.js | 0 js/{ => legacy}/widgets/tags.js | 0 js/{ => legacy}/widgets/tree.js | 6 +- js/{ => legacy}/wn/modules.js | 0 js/{ => legacy}/wn/page_layout.js | 0 js/{ => legacy}/wn/widgets/dialog.js | 2 +- js/{ => legacy}/wn/widgets/doc_column_view.js | 0 js/{ => legacy}/wn/widgets/filters.js | 0 js/{ => legacy}/wn/widgets/follow.js | 0 js/{ => legacy}/wn/widgets/footer.js | 0 .../wn/widgets/form/attachments.js | 0 js/{ => legacy}/wn/widgets/form/comments.js | 0 js/{ => legacy}/wn/widgets/form/sidebar.js | 0 js/{ => legacy}/wn/widgets/listing.js | 0 js/{ => legacy}/wn/widgets/page_sidebar.js | 0 js/{ => legacy}/wnf.compressed.js | 58 +-- js/webpage/freeze_page.js | 52 --- js/wn-coffee/app.coffee | 3 - js/wn-coffee/widgets/form/form.coffee | 31 -- {cgi-bin => py}/core/Module Def/Core/Core.txt | 0 .../core/Role/Administrator/Administrator.txt | 0 {cgi-bin => py}/core/Role/All/All.txt | 0 {cgi-bin => py}/core/Role/Guest/Guest.txt | 0 {cgi-bin => py}/core/__init__.py | 0 {cgi-bin => py}/core/doctype/__init__.py | 0 .../doctype/comment_widget_record/__init__.py | 0 .../comment_widget_record.txt | 0 .../core/doctype/control_panel/__init__.py | 0 .../doctype/control_panel/control_panel.py | 0 .../doctype/control_panel/control_panel.txt | 0 .../core/doctype/custom_field/__init__.py | 0 .../core/doctype/custom_field/custom_field.js | 0 .../core/doctype/custom_field/custom_field.py | 0 .../doctype/custom_field/custom_field.txt | 0 .../core/doctype/custom_script/__init__.py | 0 .../doctype/custom_script/custom_script.txt | 0 .../doctype/default_home_page/__init__.py | 0 .../default_home_page/default_home_page.txt | 0 .../core/doctype/defaultvalue/__init__.py | 0 .../doctype/defaultvalue/defaultvalue.txt | 0 .../core/doctype/docfield/__init__.py | 0 .../core/doctype/docfield/docfield.txt | 0 .../core/doctype/docformat/__init__.py | 0 .../core/doctype/docformat/docformat.txt | 0 .../core/doctype/docperm/__init__.py | 0 .../core/doctype/docperm/docperm.txt | 0 .../core/doctype/doctrigger/__init__.py | 0 .../core/doctype/doctrigger/doctrigger.txt | 0 .../core/doctype/doctype/__init__.py | 0 .../core/doctype/doctype/doctype.js | 0 .../core/doctype/doctype/doctype.py | 0 .../core/doctype/doctype/doctype.txt | 0 .../core/doctype/doctype_label/__init__.py | 0 .../doctype/doctype_label/doctype_label.txt | 0 .../core/doctype/doctype_mapper/__init__.py | 0 .../doctype/doctype_mapper/doctype_mapper.js | 0 .../doctype/doctype_mapper/doctype_mapper.py | 0 .../doctype/doctype_mapper/doctype_mapper.txt | 0 .../core/doctype/event/__init__.py | 0 {cgi-bin => py}/core/doctype/event/event.js | 0 {cgi-bin => py}/core/doctype/event/event.txt | 0 .../core/doctype/event_role/__init__.py | 0 .../core/doctype/event_role/event_role.txt | 0 .../core/doctype/event_user/__init__.py | 0 .../core/doctype/event_user/event_user.txt | 0 .../doctype/field_mapper_detail/__init__.py | 0 .../field_mapper_detail.txt | 0 {cgi-bin => py}/core/doctype/file/__init__.py | 0 {cgi-bin => py}/core/doctype/file/file.py | 0 {cgi-bin => py}/core/doctype/file/file.txt | 0 .../core/doctype/file_data/__init__.py | 0 .../core/doctype/file_data/file_data.txt | 0 .../core/doctype/file_group/__init__.py | 0 .../core/doctype/file_group/file_group.txt | 0 .../core/doctype/letter_head/__init__.py | 0 .../core/doctype/letter_head/letter_head.js | 0 .../core/doctype/letter_head/letter_head.py | 0 .../core/doctype/letter_head/letter_head.txt | 0 .../core/doctype/module_def/__init__.py | 0 .../core/doctype/module_def/module_def.py | 0 .../core/doctype/module_def/module_def.txt | 0 .../core/doctype/module_def_item/__init__.py | 0 .../module_def_item/module_def_item.txt | 0 .../core/doctype/module_def_role/__init__.py | 0 .../module_def_role/module_def_role.txt | 0 {cgi-bin => py}/core/doctype/page/__init__.py | 0 {cgi-bin => py}/core/doctype/page/page.py | 0 {cgi-bin => py}/core/doctype/page/page.txt | 0 .../core/doctype/page_role/__init__.py | 0 .../core/doctype/page_role/page_role.txt | 0 .../core/doctype/page_template/__init__.py | 0 .../doctype/page_template/page_template.py | 0 .../doctype/page_template/page_template.txt | 0 .../core/doctype/print_format/__init__.py | 0 .../doctype/print_format/print_format.txt | 0 .../core/doctype/profile/__init__.py | 0 .../core/doctype/profile/profile.js | 0 .../core/doctype/profile/profile.py | 0 .../core/doctype/profile/profile.txt | 0 .../core/doctype/property_setter/__init__.py | 0 .../property_setter/property_setter.comp.js | 0 .../property_setter/property_setter.js | 0 .../property_setter/property_setter.py | 0 .../property_setter/property_setter.txt | 0 {cgi-bin => py}/core/doctype/role/__init__.py | 0 {cgi-bin => py}/core/doctype/role/role.js | 0 {cgi-bin => py}/core/doctype/role/role.txt | 0 .../core/doctype/sandbox/__init__.py | 0 .../core/doctype/sandbox/import_test.js | 0 .../core/doctype/sandbox/my_trigger.sql | 0 .../core/doctype/sandbox/sandbox.js | 0 .../core/doctype/sandbox/sandbox.txt | 0 .../core/doctype/search_criteria/__init__.py | 0 .../search_criteria/search_criteria.py | 0 .../search_criteria/search_criteria.txt | 0 .../core/doctype/stylesheet/__init__.py | 0 .../core/doctype/stylesheet/stylesheet.py | 0 .../core/doctype/stylesheet/stylesheet.txt | 0 .../core/doctype/system_console/__init__.py | 0 .../system_console/system_console.comp.js | 0 .../doctype/system_console/system_console.js | 0 .../doctype/system_console/system_console.py | 0 .../doctype/system_console/system_console.txt | 0 .../doctype/table_mapper_detail/__init__.py | 0 .../table_mapper_detail.txt | 0 {cgi-bin => py}/core/doctype/tag/__init__.py | 0 {cgi-bin => py}/core/doctype/tag/tag.txt | 0 .../core/doctype/userrole/__init__.py | 0 .../core/doctype/userrole/userrole.txt | 0 {cgi-bin => py}/core/page/__init__.py | 0 .../core/page/login_page/__init__.py | 0 .../core/page/login_page/login_page.html | 0 .../core/page/login_page/login_page.js | 0 .../core/page/login_page/login_page.txt | 0 .../page/login_page/login_page_static.html | 0 {cgi-bin => py}/webnotes/__init__.py | 0 {cgi-bin => py}/webnotes/auth.py | 0 {cgi-bin => py}/webnotes/db.py | 0 {cgi-bin => py}/webnotes/defs_template.py | 0 {cgi-bin => py}/webnotes/handler.py | 0 .../webnotes/install_lib/__init__.py | 0 .../webnotes/install_lib/db_init.py | 0 .../webnotes/install_lib/install.py | 0 {cgi-bin => py}/webnotes/model/__init__.py | 0 {cgi-bin => py}/webnotes/model/code.py | 0 {cgi-bin => py}/webnotes/model/db_schema.py | 0 {cgi-bin => py}/webnotes/model/doc.py | 0 {cgi-bin => py}/webnotes/model/doclist.py | 0 {cgi-bin => py}/webnotes/model/doctype.py | 0 {cgi-bin => py}/webnotes/model/import_docs.py | 0 {cgi-bin => py}/webnotes/model/meta.py | 0 {cgi-bin => py}/webnotes/model/modules.py | 0 {cgi-bin => py}/webnotes/model/sql_sync.py | 0 {cgi-bin => py}/webnotes/model/triggers.py | 0 {cgi-bin => py}/webnotes/model/utils.py | 0 {cgi-bin => py}/webnotes/modules/__init__.py | 0 .../webnotes/modules/export_module.py | 0 .../webnotes/modules/module_manager.py | 0 {cgi-bin => py}/webnotes/modules/patch.py | 0 {cgi-bin => py}/webnotes/modules/utils.py | 0 .../webnotes/multi_tenant/__init__.py | 0 .../webnotes/multi_tenant/query_parser.py | 0 .../webnotes/multi_tenant/setup.py | 0 {cgi-bin => py}/webnotes/profile.py | 0 {cgi-bin => py}/webnotes/session_cache.py | 0 {cgi-bin => py}/webnotes/tests.py | 0 {cgi-bin => py}/webnotes/tests/__init__.py | 0 {cgi-bin => py}/webnotes/tests/modules.py | 0 {cgi-bin => py}/webnotes/utils/__init__.py | 0 {cgi-bin => py}/webnotes/utils/archive.py | 0 {cgi-bin => py}/webnotes/utils/backups.py | 0 {cgi-bin => py}/webnotes/utils/cache.py | 0 .../webnotes/utils/email_lib/__init__.py | 0 .../webnotes/utils/email_lib/form_email.py | 0 .../webnotes/utils/email_lib/html2text.py | 0 .../webnotes/utils/email_lib/receive.py | 0 .../webnotes/utils/email_lib/send.py | 0 {cgi-bin => py}/webnotes/utils/encrypt.py | 0 .../webnotes/utils/file_manager.py | 0 .../webnotes/utils/jslib/jsdependency.py | 0 {cgi-bin => py}/webnotes/utils/jslib/jsmin.py | 0 .../webnotes/utils/jslib/jsnamespace.py | 0 .../webnotes/utils/jslib/jstimestamp.py | 0 {cgi-bin => py}/webnotes/utils/nestedset.py | 0 {cgi-bin => py}/webnotes/utils/scheduler.py | 0 {cgi-bin => py}/webnotes/utils/sitemap.py | 0 {cgi-bin => py}/webnotes/utils/transfer.py | 0 {cgi-bin => py}/webnotes/utils/webservice.py | 0 {cgi-bin => py}/webnotes/widgets/__init__.py | 0 .../webnotes/widgets/auto_master.py | 0 {cgi-bin => py}/webnotes/widgets/event.py | 0 {cgi-bin => py}/webnotes/widgets/follow.py | 0 {cgi-bin => py}/webnotes/widgets/form.py | 0 {cgi-bin => py}/webnotes/widgets/menus.py | 0 {cgi-bin => py}/webnotes/widgets/page.py | 0 {cgi-bin => py}/webnotes/widgets/page_body.py | 0 .../webnotes/widgets/query_builder.py | 0 {cgi-bin => py}/webnotes/widgets/search.py | 0 {cgi-bin => py}/webnotes/widgets/tags.py | 0 {cgi-bin => py}/webnotes/widgets/todo.py | 0 robots.txt | 5 - test.html | 11 - 1173 files changed, 140 insertions(+), 1469 deletions(-) rename INSTALL.txt => INSTALL.md (78%) delete mode 100644 README create mode 100644 README.md delete mode 100755 blank.html delete mode 100644 blank1.html delete mode 100644 cgi-bin/backupall.py delete mode 100644 cgi-bin/compilejs.py delete mode 100644 cgi-bin/core/module.info delete mode 100755 cgi-bin/get_module_js.cgi delete mode 100755 cgi-bin/getfile.cgi delete mode 100755 cgi-bin/getjsfile.cgi delete mode 100755 cgi-bin/pypi-setup.py delete mode 100644 compress.py rename sitemap.xml => conf/sitemap.xml (100%) rename css/{ => legacy}/autosuggest.css (100%) rename css/{ => legacy}/body.css (100%) rename css/{ => legacy}/bw-icons.css (99%) rename css/{ => legacy}/calendar.css (100%) rename css/{ => legacy}/default.css (94%) rename css/{ => legacy}/dialog.css (100%) rename css/{ => legacy}/doc_column_view.css (100%) rename css/{ => legacy}/forms.css (100%) rename css/{ => legacy}/grid.css (100%) rename css/{ => legacy}/images/ui-bg_flat_0_aaaaaa_40x100.png (100%) rename css/{ => legacy}/images/ui-bg_flat_75_ffffff_40x100.png (100%) rename css/{ => legacy}/images/ui-bg_glass_55_fbf9ee_1x400.png (100%) rename css/{ => legacy}/images/ui-bg_glass_95_fef1ec_1x400.png (100%) rename css/{ => legacy}/images/ui-bg_highlight-hard_65_ffffff_1x100.png (100%) rename css/{ => legacy}/images/ui-bg_highlight-hard_75_dadada_1x100.png (100%) rename css/{ => legacy}/images/ui-bg_highlight-hard_75_e6e6e6_1x100.png (100%) rename css/{ => legacy}/images/ui-bg_highlight-soft_75_cccccc_1x100.png (100%) rename css/{ => legacy}/images/ui-icons_222222_256x240.png (100%) rename css/{ => legacy}/images/ui-icons_2e83ff_256x240.png (100%) rename css/{ => legacy}/images/ui-icons_454545_256x240.png (100%) rename css/{ => legacy}/images/ui-icons_888888_256x240.png (100%) rename css/{ => legacy}/images/ui-icons_cd0a0a_256x240.png (100%) rename css/{ => legacy}/jqplot.css (100%) rename css/{ => legacy}/jquery-ui.css (100%) rename css/{ => legacy}/listing.css (100%) rename css/{ => legacy}/menus.css (100%) rename css/{ => legacy}/messages.css (100%) rename css/{ => legacy}/report.css (100%) rename css/{ => legacy}/sidebar.css (100%) rename css/{ => legacy}/tabs.css (100%) rename css/{ => legacy}/user.css (100%) rename css/{ => legacy}/wntoolbar.css (55%) delete mode 100644 data/Framework.sql delete mode 100755 images/icons/Accounts.gif delete mode 100755 images/icons/Accounts.png delete mode 100755 images/icons/Analysis.gif delete mode 100755 images/icons/Analysis.png delete mode 100755 images/icons/Buying.gif delete mode 100755 images/icons/Buying.png delete mode 100755 images/icons/HR.gif delete mode 100755 images/icons/HR.png delete mode 100755 images/icons/Home.gif delete mode 100755 images/icons/Home.png delete mode 100755 images/icons/Maintenance.gif delete mode 100755 images/icons/Maintenance.png delete mode 100755 images/icons/Production.gif delete mode 100755 images/icons/Production.png delete mode 100755 images/icons/Projects.gif delete mode 100755 images/icons/Projects.png delete mode 100755 images/icons/Selling.gif delete mode 100755 images/icons/Selling.png delete mode 100755 images/icons/Setup.gif delete mode 100755 images/icons/Setup.png delete mode 100755 images/icons/Stock.gif delete mode 100755 images/icons/Stock.png delete mode 100644 images/icons/accept.gif delete mode 100755 images/icons/accept.png delete mode 100644 images/icons/add.gif delete mode 100755 images/icons/add.png delete mode 100755 images/icons/anchor.png delete mode 100644 images/icons/application.gif delete mode 100755 images/icons/application.png delete mode 100755 images/icons/application_add.png delete mode 100755 images/icons/application_cascade.png delete mode 100755 images/icons/application_delete.png delete mode 100755 images/icons/application_double.png delete mode 100755 images/icons/application_form.png delete mode 100755 images/icons/application_go.png delete mode 100755 images/icons/application_side_list.png delete mode 100755 images/icons/application_side_tree.png delete mode 100755 images/icons/application_split.png delete mode 100755 images/icons/application_tile_horizontal.png delete mode 100755 images/icons/application_tile_vertical.png delete mode 100755 images/icons/application_view_columns.png delete mode 100755 images/icons/application_view_detail.png delete mode 100755 images/icons/application_view_tile.png delete mode 100755 images/icons/application_xp.png delete mode 100755 images/icons/application_xp_terminal.png delete mode 100755 images/icons/arrow_branch.png delete mode 100755 images/icons/arrow_divide.png delete mode 100644 images/icons/arrow_down.gif delete mode 100755 images/icons/arrow_down.png delete mode 100755 images/icons/arrow_in.png delete mode 100755 images/icons/arrow_inout.png delete mode 100755 images/icons/arrow_join.png delete mode 100644 images/icons/arrow_left.gif delete mode 100755 images/icons/arrow_left.png delete mode 100755 images/icons/arrow_merge.png delete mode 100755 images/icons/arrow_out.png delete mode 100755 images/icons/arrow_redo.png delete mode 100755 images/icons/arrow_refresh.png delete mode 100755 images/icons/arrow_refresh_small.png delete mode 100644 images/icons/arrow_right.gif delete mode 100755 images/icons/arrow_right.png delete mode 100755 images/icons/arrow_rotate_anticlockwise.png delete mode 100755 images/icons/arrow_rotate_clockwise.png delete mode 100755 images/icons/arrow_switch.png delete mode 100755 images/icons/arrow_turn_left.png delete mode 100755 images/icons/arrow_turn_right.png delete mode 100755 images/icons/arrow_undo.png delete mode 100644 images/icons/arrow_up.gif delete mode 100755 images/icons/arrow_up.png delete mode 100755 images/icons/asterisk_orange.png delete mode 100755 images/icons/asterisk_yellow.png delete mode 100755 images/icons/attach.png delete mode 100755 images/icons/award_star_add.png delete mode 100755 images/icons/award_star_bronze_1.png delete mode 100755 images/icons/award_star_bronze_2.png delete mode 100755 images/icons/award_star_bronze_3.png delete mode 100755 images/icons/award_star_delete.png delete mode 100755 images/icons/award_star_gold_1.png delete mode 100755 images/icons/award_star_gold_2.png delete mode 100755 images/icons/award_star_gold_3.png delete mode 100755 images/icons/award_star_silver_1.png delete mode 100755 images/icons/award_star_silver_2.png delete mode 100755 images/icons/award_star_silver_3.png delete mode 100755 images/icons/basket.png delete mode 100755 images/icons/bell.png delete mode 100755 images/icons/bin.png delete mode 100755 images/icons/bin_closed.png delete mode 100755 images/icons/bin_empty.png delete mode 100755 images/icons/bomb.png delete mode 100755 images/icons/book.png delete mode 100755 images/icons/book_add.png delete mode 100755 images/icons/book_addresses.png delete mode 100755 images/icons/box.png delete mode 100755 images/icons/brick.png delete mode 100755 images/icons/bricks.png delete mode 100755 images/icons/briefcase.png delete mode 100755 images/icons/bug.png delete mode 100755 images/icons/building.png delete mode 100755 images/icons/bullet_add.png delete mode 100755 images/icons/bullet_arrow_bottom.png delete mode 100755 images/icons/bullet_arrow_down.png delete mode 100755 images/icons/bullet_arrow_top.png delete mode 100755 images/icons/bullet_arrow_up.png delete mode 100755 images/icons/bullet_black.png delete mode 100755 images/icons/bullet_blue.png delete mode 100755 images/icons/bullet_delete.png delete mode 100755 images/icons/bullet_green.png delete mode 100755 images/icons/bullet_key.png delete mode 100755 images/icons/bullet_orange.png delete mode 100755 images/icons/bullet_picture.png delete mode 100755 images/icons/bullet_pink.png delete mode 100755 images/icons/bullet_purple.png delete mode 100755 images/icons/bullet_red.png delete mode 100755 images/icons/bullet_star.png delete mode 100755 images/icons/bullet_toggle_minus.png delete mode 100755 images/icons/bullet_toggle_plus.png delete mode 100755 images/icons/bullet_white.png delete mode 100755 images/icons/bullet_wrench.png delete mode 100755 images/icons/bullet_yellow.png delete mode 100755 images/icons/cake.png delete mode 100644 images/icons/calculator.gif delete mode 100755 images/icons/calculator.png delete mode 100644 images/icons/calendar.gif delete mode 100755 images/icons/calendar.png delete mode 100755 images/icons/calendar_view_day.png delete mode 100755 images/icons/calendar_view_month.png delete mode 100755 images/icons/calendar_view_week.png delete mode 100755 images/icons/camera.png delete mode 100644 images/icons/cancel.gif delete mode 100755 images/icons/cancel.png delete mode 100755 images/icons/car.png delete mode 100755 images/icons/car_add.png delete mode 100755 images/icons/car_delete.png delete mode 100755 images/icons/cart.png delete mode 100755 images/icons/cart_add.png delete mode 100755 images/icons/cart_delete.png delete mode 100755 images/icons/cart_edit.png delete mode 100755 images/icons/cart_error.png delete mode 100755 images/icons/cart_go.png delete mode 100755 images/icons/cart_put.png delete mode 100755 images/icons/cart_remove.png delete mode 100755 images/icons/cd.png delete mode 100644 images/icons/chart_bar.gif delete mode 100755 images/icons/chart_bar.png delete mode 100755 images/icons/chart_curve.png delete mode 100755 images/icons/chart_line.png delete mode 100755 images/icons/chart_organisation.png delete mode 100755 images/icons/chart_pie.png delete mode 100755 images/icons/clock.png delete mode 100755 images/icons/clock_play.png delete mode 100755 images/icons/clock_red.png delete mode 100755 images/icons/clock_stop.png delete mode 100755 images/icons/cog.png delete mode 100755 images/icons/coins.png delete mode 100755 images/icons/coins_add.png delete mode 100755 images/icons/coins_delete.png delete mode 100755 images/icons/color_swatch.png delete mode 100755 images/icons/color_wheel.png delete mode 100755 images/icons/comment.png delete mode 100755 images/icons/comment_add.png delete mode 100755 images/icons/comment_delete.png delete mode 100755 images/icons/comment_edit.png delete mode 100644 images/icons/comments.gif delete mode 100755 images/icons/comments.png delete mode 100755 images/icons/comments_add.png delete mode 100755 images/icons/comments_delete.png delete mode 100755 images/icons/compress.png delete mode 100755 images/icons/computer.png delete mode 100755 images/icons/connect.png delete mode 100755 images/icons/contrast.png delete mode 100755 images/icons/control_eject.png delete mode 100755 images/icons/control_eject_blue.png delete mode 100755 images/icons/control_end.png delete mode 100755 images/icons/control_end_blue.png delete mode 100755 images/icons/control_equalizer.png delete mode 100755 images/icons/control_equalizer_blue.png delete mode 100755 images/icons/control_fastforward.png delete mode 100755 images/icons/control_fastforward_blue.png delete mode 100755 images/icons/control_pause.png delete mode 100755 images/icons/control_pause_blue.png delete mode 100755 images/icons/control_play.png delete mode 100755 images/icons/control_play_blue.png delete mode 100755 images/icons/control_repeat.png delete mode 100755 images/icons/control_repeat_blue.png delete mode 100755 images/icons/control_rewind.png delete mode 100755 images/icons/control_rewind_blue.png delete mode 100755 images/icons/control_start.png delete mode 100755 images/icons/control_start_blue.png delete mode 100755 images/icons/controller.png delete mode 100755 images/icons/creditcards.png delete mode 100755 images/icons/cross.png delete mode 100755 images/icons/css.png delete mode 100755 images/icons/cup.png delete mode 100755 images/icons/cursor.png delete mode 100755 images/icons/cut.png delete mode 100755 images/icons/cut_red.png delete mode 100755 images/icons/database.png delete mode 100755 images/icons/date.png delete mode 100755 images/icons/date_magnify.png delete mode 100755 images/icons/date_next.png delete mode 100755 images/icons/date_previous.png delete mode 100755 images/icons/delete.png delete mode 100755 images/icons/disconnect.png delete mode 100644 images/icons/disk.gif delete mode 100755 images/icons/disk.png delete mode 100755 images/icons/disk_multiple.png delete mode 100755 images/icons/door.png delete mode 100755 images/icons/door_in.png delete mode 100755 images/icons/door_open.png delete mode 100755 images/icons/door_out.png delete mode 100644 images/icons/down-arrow.gif delete mode 100755 images/icons/drink.png delete mode 100755 images/icons/drink_empty.png delete mode 100755 images/icons/drive.png delete mode 100755 images/icons/dvd.png delete mode 100644 images/icons/email.gif delete mode 100755 images/icons/email.png delete mode 100755 images/icons/email_add.png delete mode 100755 images/icons/email_attach.png delete mode 100755 images/icons/email_delete.png delete mode 100755 images/icons/email_edit.png delete mode 100755 images/icons/email_error.png delete mode 100755 images/icons/email_go.png delete mode 100755 images/icons/email_link.png delete mode 100755 images/icons/email_open.png delete mode 100755 images/icons/email_open_image.png delete mode 100755 images/icons/emoticon_evilgrin.png delete mode 100755 images/icons/emoticon_grin.png delete mode 100755 images/icons/emoticon_happy.png delete mode 100644 images/icons/emoticon_smile.gif delete mode 100755 images/icons/emoticon_smile.png delete mode 100755 images/icons/emoticon_surprised.png delete mode 100755 images/icons/emoticon_tongue.png delete mode 100755 images/icons/emoticon_unhappy.png delete mode 100755 images/icons/emoticon_waii.png delete mode 100755 images/icons/emoticon_wink.png delete mode 100644 images/icons/error.gif delete mode 100755 images/icons/error.png delete mode 100755 images/icons/error_add.png delete mode 100755 images/icons/error_delete.png delete mode 100755 images/icons/error_go.png delete mode 100755 images/icons/exclamation.png delete mode 100755 images/icons/eye.png delete mode 100755 images/icons/feed.png delete mode 100755 images/icons/female.png delete mode 100755 images/icons/film.png delete mode 100755 images/icons/find.png delete mode 100755 images/icons/flag_blue.png delete mode 100755 images/icons/flag_green.png delete mode 100755 images/icons/flag_orange.png delete mode 100755 images/icons/flag_pink.png delete mode 100755 images/icons/flag_purple.png delete mode 100755 images/icons/flag_red.png delete mode 100755 images/icons/flag_yellow.png delete mode 100755 images/icons/folder.png delete mode 100755 images/icons/folder_delete.png delete mode 100755 images/icons/folder_error.png delete mode 100755 images/icons/folder_link.png delete mode 100755 images/icons/folder_page_white.png delete mode 100755 images/icons/folder_star.png delete mode 100755 images/icons/folder_user.png delete mode 100755 images/icons/font.png delete mode 100755 images/icons/font_add.png delete mode 100755 images/icons/font_delete.png delete mode 100755 images/icons/font_go.png delete mode 100644 images/icons/group.gif delete mode 100755 images/icons/group.png delete mode 100755 images/icons/heart.png delete mode 100755 images/icons/heart_add.png delete mode 100755 images/icons/heart_delete.png delete mode 100644 images/icons/help.gif delete mode 100755 images/icons/help.png delete mode 100755 images/icons/hourglass.png delete mode 100644 images/icons/house.gif delete mode 100755 images/icons/house.png delete mode 100755 images/icons/house_go.png delete mode 100755 images/icons/house_link.png delete mode 100755 images/icons/html.png delete mode 100644 images/icons/icon-recommend.gif delete mode 100755 images/icons/image.png delete mode 100755 images/icons/image_add.png delete mode 100755 images/icons/image_delete.png delete mode 100755 images/icons/image_edit.png delete mode 100755 images/icons/image_link.png delete mode 100755 images/icons/images.png delete mode 100755 images/icons/information.png delete mode 100755 images/icons/ipod.png delete mode 100755 images/icons/joystick.png delete mode 100755 images/icons/key.png delete mode 100755 images/icons/key_add.png delete mode 100755 images/icons/key_delete.png delete mode 100755 images/icons/key_go.png delete mode 100755 images/icons/keyboard.png delete mode 100755 images/icons/layers.png delete mode 100755 images/icons/layout.png delete mode 100755 images/icons/layout_add.png delete mode 100755 images/icons/layout_content.png delete mode 100644 images/icons/lightbulb.gif delete mode 100755 images/icons/lightbulb.png delete mode 100755 images/icons/lightbulb_off.png delete mode 100755 images/icons/lightning.png delete mode 100755 images/icons/link.png delete mode 100755 images/icons/lock.png delete mode 100755 images/icons/lock_open.png delete mode 100755 images/icons/lorry.png delete mode 100755 images/icons/magifier_zoom_out.png delete mode 100644 images/icons/magnifier.gif delete mode 100755 images/icons/magnifier.png delete mode 100755 images/icons/magnifier_zoom_in.png delete mode 100755 images/icons/male.png delete mode 100755 images/icons/map.png delete mode 100755 images/icons/medal_bronze_1.png delete mode 100755 images/icons/medal_bronze_2.png delete mode 100755 images/icons/medal_bronze_3.png delete mode 100755 images/icons/medal_bronze_add.png delete mode 100755 images/icons/medal_bronze_delete.png delete mode 100755 images/icons/medal_gold_1.png delete mode 100755 images/icons/medal_gold_2.png delete mode 100755 images/icons/medal_gold_3.png delete mode 100755 images/icons/medal_gold_add.png delete mode 100755 images/icons/medal_gold_delete.png delete mode 100755 images/icons/medal_silver_1.png delete mode 100755 images/icons/medal_silver_2.png delete mode 100755 images/icons/medal_silver_3.png delete mode 100755 images/icons/medal_silver_add.png delete mode 100755 images/icons/medal_silver_delete.png delete mode 100755 images/icons/money.png delete mode 100755 images/icons/money_add.png delete mode 100755 images/icons/money_delete.png delete mode 100755 images/icons/money_dollar.png delete mode 100755 images/icons/money_euro.png delete mode 100755 images/icons/money_pound.png delete mode 100755 images/icons/money_yen.png delete mode 100755 images/icons/monitor.png delete mode 100755 images/icons/mouse.png delete mode 100755 images/icons/mouse_add.png delete mode 100755 images/icons/mouse_delete.png delete mode 100755 images/icons/mouse_error.png delete mode 100755 images/icons/music.png delete mode 100755 images/icons/new.png delete mode 100755 images/icons/newspaper.png delete mode 100644 images/icons/note.gif delete mode 100755 images/icons/note.png delete mode 100755 images/icons/overlays.png delete mode 100755 images/icons/package.png delete mode 100644 images/icons/page.gif delete mode 100755 images/icons/page.png delete mode 100644 images/icons/page_add.gif delete mode 100755 images/icons/page_add.png delete mode 100755 images/icons/page_attach.png delete mode 100755 images/icons/page_code.png delete mode 100644 images/icons/page_copy.gif delete mode 100755 images/icons/page_copy.png delete mode 100755 images/icons/page_delete.png delete mode 100755 images/icons/page_edit.png delete mode 100755 images/icons/page_error.png delete mode 100644 images/icons/page_excel.gif delete mode 100755 images/icons/page_excel.png delete mode 100755 images/icons/page_find.png delete mode 100755 images/icons/page_gear.png delete mode 100755 images/icons/page_go.png delete mode 100755 images/icons/page_green.png delete mode 100755 images/icons/page_key.png delete mode 100755 images/icons/page_lightning.png delete mode 100755 images/icons/page_link.png delete mode 100755 images/icons/page_paintbrush.png delete mode 100755 images/icons/page_paste.png delete mode 100755 images/icons/page_red.png delete mode 100644 images/icons/page_refresh.gif delete mode 100755 images/icons/page_refresh.png delete mode 100755 images/icons/page_save.png delete mode 100755 images/icons/page_white.png delete mode 100755 images/icons/page_white_acrobat.png delete mode 100755 images/icons/page_white_actionscript.png delete mode 100755 images/icons/page_white_add.png delete mode 100755 images/icons/page_white_c.png delete mode 100755 images/icons/page_white_camera.png delete mode 100755 images/icons/page_white_cd.png delete mode 100755 images/icons/page_white_code.png delete mode 100755 images/icons/page_white_code_red.png delete mode 100755 images/icons/page_white_copy.png delete mode 100755 images/icons/page_white_csharp.png delete mode 100755 images/icons/page_white_cup.png delete mode 100755 images/icons/page_white_delete.png delete mode 100755 images/icons/page_white_dvd.png delete mode 100755 images/icons/page_white_error.png delete mode 100755 images/icons/page_white_find.png delete mode 100755 images/icons/page_white_flash.png delete mode 100755 images/icons/page_white_freehand.png delete mode 100755 images/icons/page_white_gear.png delete mode 100755 images/icons/page_white_get.png delete mode 100755 images/icons/page_white_go.png delete mode 100755 images/icons/page_white_h.png delete mode 100755 images/icons/page_white_horizontal.png delete mode 100755 images/icons/page_white_key.png delete mode 100755 images/icons/page_white_lightning.png delete mode 100755 images/icons/page_white_link.png delete mode 100755 images/icons/page_white_magnify.png delete mode 100755 images/icons/page_white_medal.png delete mode 100755 images/icons/page_white_office.png delete mode 100755 images/icons/page_white_paint.png delete mode 100755 images/icons/page_white_paintbrush.png delete mode 100755 images/icons/page_white_paste.png delete mode 100755 images/icons/page_white_put.png delete mode 100755 images/icons/page_white_stack.png delete mode 100755 images/icons/page_white_star.png delete mode 100755 images/icons/page_white_text.png delete mode 100755 images/icons/page_white_text_width.png delete mode 100755 images/icons/page_white_tux.png delete mode 100755 images/icons/page_white_vector.png delete mode 100755 images/icons/page_white_visualstudio.png delete mode 100755 images/icons/page_white_width.png delete mode 100755 images/icons/page_white_word.png delete mode 100755 images/icons/page_white_world.png delete mode 100755 images/icons/page_white_wrench.png delete mode 100755 images/icons/page_white_zip.png delete mode 100755 images/icons/page_word.png delete mode 100755 images/icons/page_world.png delete mode 100755 images/icons/paintbrush.png delete mode 100755 images/icons/paintcan.png delete mode 100755 images/icons/palette.png delete mode 100644 images/icons/paperclip.gif delete mode 100755 images/icons/paste_plain.png delete mode 100755 images/icons/pencil.png delete mode 100755 images/icons/phone.png delete mode 100755 images/icons/phone_sound.png delete mode 100755 images/icons/photo.png delete mode 100755 images/icons/photos.png delete mode 100755 images/icons/picture.png delete mode 100755 images/icons/pictures.png delete mode 100755 images/icons/pilcrow.png delete mode 100755 images/icons/pill.png delete mode 100755 images/icons/plugin.png delete mode 100644 images/icons/printer.gif delete mode 100755 images/icons/printer.png delete mode 100755 images/icons/printer_error.png delete mode 100644 images/icons/question.png delete mode 100755 images/icons/rainbow.png delete mode 100755 images/icons/report.png delete mode 100644 images/icons/resultset_first.gif delete mode 100755 images/icons/resultset_first.png delete mode 100644 images/icons/resultset_last.gif delete mode 100755 images/icons/resultset_last.png delete mode 100644 images/icons/resultset_next.gif delete mode 100755 images/icons/resultset_next.png delete mode 100644 images/icons/resultset_previous.gif delete mode 100755 images/icons/resultset_previous.png delete mode 100755 images/icons/rosette.png delete mode 100755 images/icons/rss.png delete mode 100755 images/icons/script.png delete mode 100755 images/icons/server.png delete mode 100755 images/icons/shading.png delete mode 100755 images/icons/shield.png delete mode 100755 images/icons/sitemap.png delete mode 100755 images/icons/sitemap_color.png delete mode 100644 images/icons/sort_asc.gif delete mode 100644 images/icons/sort_desc.gif delete mode 100755 images/icons/sound.png delete mode 100755 images/icons/sound_add.png delete mode 100755 images/icons/sound_delete.png delete mode 100755 images/icons/sound_low.png delete mode 100755 images/icons/sound_mute.png delete mode 100755 images/icons/sound_none.png delete mode 100755 images/icons/spellcheck.png delete mode 100755 images/icons/sport_8ball.png delete mode 100755 images/icons/sport_basketball.png delete mode 100755 images/icons/sport_football.png delete mode 100755 images/icons/sport_golf.png delete mode 100755 images/icons/sport_raquet.png delete mode 100755 images/icons/sport_shuttlecock.png delete mode 100755 images/icons/sport_soccer.png delete mode 100755 images/icons/sport_tennis.png delete mode 100644 images/icons/star.gif delete mode 100755 images/icons/star.png delete mode 100755 images/icons/status_away.png delete mode 100755 images/icons/status_busy.png delete mode 100755 images/icons/status_offline.png delete mode 100755 images/icons/status_online.png delete mode 100755 images/icons/stop.png delete mode 100755 images/icons/sum.png delete mode 100644 images/icons/table.gif delete mode 100755 images/icons/table.png delete mode 100755 images/icons/table_edit.png delete mode 100644 images/icons/table_row_delete.gif delete mode 100755 images/icons/table_row_delete.png delete mode 100644 images/icons/table_row_insert.gif delete mode 100755 images/icons/table_row_insert.png delete mode 100755 images/icons/table_save.png delete mode 100755 images/icons/table_sort.png delete mode 100755 images/icons/tag.png delete mode 100755 images/icons/tag_blue.png delete mode 100755 images/icons/tag_green.png delete mode 100755 images/icons/tag_orange.png delete mode 100755 images/icons/tag_pink.png delete mode 100755 images/icons/tag_purple.png delete mode 100755 images/icons/tag_red.png delete mode 100755 images/icons/tag_yellow.png delete mode 100755 images/icons/telephone.png delete mode 100755 images/icons/television.png delete mode 100755 images/icons/television_add.png delete mode 100755 images/icons/television_delete.png delete mode 100755 images/icons/text_uppercase.png delete mode 100755 images/icons/textfield.png delete mode 100755 images/icons/thumb_down.png delete mode 100755 images/icons/thumb_up.png delete mode 100755 images/icons/tick.png delete mode 100755 images/icons/time.png delete mode 100755 images/icons/timeline_marker.png delete mode 100755 images/icons/transmit.png delete mode 100755 images/icons/tux.png delete mode 100644 images/icons/user.gif delete mode 100755 images/icons/user.png delete mode 100755 images/icons/user_add.png delete mode 100755 images/icons/user_comment.png delete mode 100755 images/icons/user_delete.png delete mode 100755 images/icons/user_edit.png delete mode 100755 images/icons/user_female.png delete mode 100755 images/icons/user_go.png delete mode 100755 images/icons/user_gray.png delete mode 100755 images/icons/user_green.png delete mode 100755 images/icons/user_orange.png delete mode 100755 images/icons/user_red.png delete mode 100755 images/icons/user_suit.png delete mode 100644 images/icons/v_sprite.gif delete mode 100755 images/icons/vcard.png delete mode 100755 images/icons/vcard_add.png delete mode 100755 images/icons/vcard_delete.png delete mode 100755 images/icons/vcard_edit.png delete mode 100755 images/icons/vector.png delete mode 100755 images/icons/vector_add.png delete mode 100755 images/icons/vector_delete.png delete mode 100755 images/icons/wand.png delete mode 100755 images/icons/weather_clouds.png delete mode 100755 images/icons/weather_cloudy.png delete mode 100755 images/icons/weather_lightning.png delete mode 100755 images/icons/weather_rain.png delete mode 100755 images/icons/weather_snow.png delete mode 100755 images/icons/weather_sun.png delete mode 100755 images/icons/webcam.png delete mode 100755 images/icons/world.png delete mode 100755 images/icons/world_link.png delete mode 100644 images/icons/wrench.gif delete mode 100755 images/icons/wrench.png delete mode 100755 images/icons/wrench_orange.png delete mode 100755 images/icons/zoom.png delete mode 100755 images/icons/zoom_in.png delete mode 100755 images/icons/zoom_out.png delete mode 100644 images/ui/blue-grad-1.gif delete mode 100644 images/ui/checked_box.gif delete mode 100644 images/ui/circle-cutout.gif delete mode 100644 images/ui/down-arrow.gif delete mode 100644 images/ui/down-arrow1.gif delete mode 100644 images/ui/loading.gif delete mode 100644 images/ui/loading_startup.gif delete mode 100644 images/ui/next_pointer.gif delete mode 100644 images/ui/no_img/no_img_f.gif delete mode 100644 images/ui/no_img/no_img_m.gif delete mode 100644 images/ui/plain_box.gif delete mode 100644 images/ui/prev_pointer.gif delete mode 100644 images/ui/right-arrow.gif delete mode 100644 images/ui/square_loading.gif delete mode 100644 images/ui/star.gif delete mode 100644 images/ui/star_plain.gif delete mode 100644 images/ui/tick.gif delete mode 100755 index.cgi rename js/{ => legacy}/app.js (85%) rename js/{ => legacy}/form.compressed.js (100%) rename js/{ => legacy}/globals.js (54%) rename js/{ => legacy}/jquery/excanvas.min.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.BezierCurveRenderer.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.BezierCurveRenderer.min.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.barRenderer.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.barRenderer.min.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.blockRenderer.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.blockRenderer.min.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.bubbleRenderer.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.bubbleRenderer.min.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.canvasAxisLabelRenderer.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.canvasAxisLabelRenderer.min.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.canvasAxisTickRenderer.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.canvasAxisTickRenderer.min.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.canvasOverlay.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.canvasOverlay.min.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.canvasTextRenderer.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.canvasTextRenderer.min.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.categoryAxisRenderer.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.categoryAxisRenderer.min.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.ciParser.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.ciParser.min.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.cursor.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.cursor.min.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.dateAxisRenderer.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.dateAxisRenderer.min.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.donutRenderer.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.donutRenderer.min.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.dragable.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.dragable.min.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.enhancedLegendRenderer.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.enhancedLegendRenderer.min.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.funnelRenderer.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.funnelRenderer.min.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.highlighter.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.highlighter.min.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.json2.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.json2.min.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.logAxisRenderer.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.logAxisRenderer.min.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.mekkoAxisRenderer.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.mekkoAxisRenderer.min.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.mekkoRenderer.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.mekkoRenderer.min.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.meterGaugeRenderer.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.meterGaugeRenderer.min.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.ohlcRenderer.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.ohlcRenderer.min.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.pieRenderer.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.pieRenderer.min.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.pointLabels.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.pointLabels.min.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.trendline.js (100%) rename js/{ => legacy}/jquery/jqplot-plugins/jqplot.trendline.min.js (100%) rename js/{ => legacy}/jquery/jquery-ui.min.js (100%) rename js/{ => legacy}/jquery/jquery.flot.js (100%) rename js/{ => legacy}/jquery/jquery.jqplot.min.js (100%) rename js/{ => legacy}/jquery/jquery.min.js (100%) rename js/{ => legacy}/model/doclist.js (100%) rename js/{ => legacy}/model/local_data.js (100%) rename js/{ => legacy}/report.compressed.js (100%) rename js/{ => legacy}/tiny_mce_33/custom_content.css (100%) rename js/{ => legacy}/tiny_mce_33/jquery.tinymce.js (100%) rename js/{ => legacy}/tiny_mce_33/langs/en.js (100%) rename js/{ => legacy}/tiny_mce_33/license.txt (100%) rename js/{ => legacy}/tiny_mce_33/plugins/advhr/css/advhr.css (100%) rename js/{ => legacy}/tiny_mce_33/plugins/advhr/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/advhr/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/advhr/js/rule.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/advhr/langs/en_dlg.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/advhr/rule.htm (100%) rename js/{ => legacy}/tiny_mce_33/plugins/advimage/css/advimage.css (100%) rename js/{ => legacy}/tiny_mce_33/plugins/advimage/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/advimage/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/advimage/image.htm (100%) rename js/{ => legacy}/tiny_mce_33/plugins/advimage/img/sample.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/advimage/js/image.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/advimage/langs/en_dlg.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/advlink/css/advlink.css (100%) rename js/{ => legacy}/tiny_mce_33/plugins/advlink/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/advlink/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/advlink/js/advlink.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/advlink/langs/en_dlg.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/advlink/link.htm (100%) rename js/{ => legacy}/tiny_mce_33/plugins/advlist/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/advlist/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/autoresize/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/autoresize/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/autosave/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/autosave/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/autosave/langs/en.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/bbcode/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/bbcode/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/contextmenu/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/contextmenu/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/directionality/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/directionality/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/emotions/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/emotions/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/emotions/emotions.htm (100%) rename js/{ => legacy}/tiny_mce_33/plugins/emotions/img/smiley-cool.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/emotions/img/smiley-cry.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/emotions/img/smiley-embarassed.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/emotions/img/smiley-foot-in-mouth.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/emotions/img/smiley-frown.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/emotions/img/smiley-innocent.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/emotions/img/smiley-kiss.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/emotions/img/smiley-laughing.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/emotions/img/smiley-money-mouth.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/emotions/img/smiley-sealed.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/emotions/img/smiley-smile.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/emotions/img/smiley-surprised.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/emotions/img/smiley-tongue-out.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/emotions/img/smiley-undecided.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/emotions/img/smiley-wink.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/emotions/img/smiley-yell.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/emotions/js/emotions.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/emotions/langs/en_dlg.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/example/dialog.htm (100%) rename js/{ => legacy}/tiny_mce_33/plugins/example/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/example/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/example/img/example.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/example/js/dialog.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/example/langs/en.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/example/langs/en_dlg.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/fullpage/css/fullpage.css (100%) rename js/{ => legacy}/tiny_mce_33/plugins/fullpage/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/fullpage/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/fullpage/fullpage.htm (100%) rename js/{ => legacy}/tiny_mce_33/plugins/fullpage/js/fullpage.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/fullpage/langs/en_dlg.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/fullscreen/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/fullscreen/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/fullscreen/fullscreen.htm (100%) rename js/{ => legacy}/tiny_mce_33/plugins/iespell/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/iespell/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/inlinepopups/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/inlinepopups/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/img/alert.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/img/button.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/img/corners.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/inlinepopups/skins/clearlooks2/window.css (100%) rename js/{ => legacy}/tiny_mce_33/plugins/inlinepopups/template.htm (100%) rename js/{ => legacy}/tiny_mce_33/plugins/insertdatetime/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/insertdatetime/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/layer/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/layer/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/legacyoutput/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/legacyoutput/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/media/css/content.css (100%) rename js/{ => legacy}/tiny_mce_33/plugins/media/css/media.css (100%) rename js/{ => legacy}/tiny_mce_33/plugins/media/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/media/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/media/img/flash.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/media/img/flv_player.swf (100%) rename js/{ => legacy}/tiny_mce_33/plugins/media/img/quicktime.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/media/img/realmedia.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/media/img/shockwave.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/media/img/trans.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/media/img/windowsmedia.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/media/js/embed.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/media/js/media.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/media/langs/en_dlg.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/media/media.htm (100%) rename js/{ => legacy}/tiny_mce_33/plugins/nonbreaking/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/nonbreaking/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/noneditable/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/noneditable/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/pagebreak/css/content.css (100%) rename js/{ => legacy}/tiny_mce_33/plugins/pagebreak/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/pagebreak/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/pagebreak/img/pagebreak.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/pagebreak/img/trans.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/paste/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/paste/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/paste/js/pastetext.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/paste/js/pasteword.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/paste/langs/en_dlg.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/paste/pastetext.htm (100%) rename js/{ => legacy}/tiny_mce_33/plugins/paste/pasteword.htm (100%) rename js/{ => legacy}/tiny_mce_33/plugins/preview/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/preview/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/preview/example.html (100%) rename js/{ => legacy}/tiny_mce_33/plugins/preview/jscripts/embed.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/preview/preview.html (100%) rename js/{ => legacy}/tiny_mce_33/plugins/print/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/print/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/save/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/save/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/searchreplace/css/searchreplace.css (100%) rename js/{ => legacy}/tiny_mce_33/plugins/searchreplace/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/searchreplace/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/searchreplace/js/searchreplace.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/searchreplace/langs/en_dlg.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/searchreplace/searchreplace.htm (100%) rename js/{ => legacy}/tiny_mce_33/plugins/spellchecker/css/content.css (100%) rename js/{ => legacy}/tiny_mce_33/plugins/spellchecker/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/spellchecker/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/spellchecker/img/wline.gif (100%) rename js/{ => legacy}/tiny_mce_33/plugins/style/css/props.css (100%) rename js/{ => legacy}/tiny_mce_33/plugins/style/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/style/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/style/js/props.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/style/langs/en_dlg.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/style/props.htm (100%) rename js/{ => legacy}/tiny_mce_33/plugins/tabfocus/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/tabfocus/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/table/cell.htm (100%) rename js/{ => legacy}/tiny_mce_33/plugins/table/css/cell.css (100%) rename js/{ => legacy}/tiny_mce_33/plugins/table/css/row.css (100%) rename js/{ => legacy}/tiny_mce_33/plugins/table/css/table.css (100%) rename js/{ => legacy}/tiny_mce_33/plugins/table/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/table/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/table/js/cell.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/table/js/merge_cells.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/table/js/row.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/table/js/table.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/table/langs/en_dlg.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/table/merge_cells.htm (100%) rename js/{ => legacy}/tiny_mce_33/plugins/table/row.htm (100%) rename js/{ => legacy}/tiny_mce_33/plugins/table/table.htm (100%) rename js/{ => legacy}/tiny_mce_33/plugins/template/blank.htm (100%) rename js/{ => legacy}/tiny_mce_33/plugins/template/css/template.css (100%) rename js/{ => legacy}/tiny_mce_33/plugins/template/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/template/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/template/js/template.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/template/langs/en_dlg.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/template/template.htm (100%) rename js/{ => legacy}/tiny_mce_33/plugins/visualchars/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/visualchars/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/wordcount/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/wordcount/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/xhtmlxtras/abbr.htm (100%) rename js/{ => legacy}/tiny_mce_33/plugins/xhtmlxtras/acronym.htm (100%) rename js/{ => legacy}/tiny_mce_33/plugins/xhtmlxtras/attributes.htm (100%) rename js/{ => legacy}/tiny_mce_33/plugins/xhtmlxtras/cite.htm (100%) rename js/{ => legacy}/tiny_mce_33/plugins/xhtmlxtras/css/attributes.css (100%) rename js/{ => legacy}/tiny_mce_33/plugins/xhtmlxtras/css/popup.css (100%) rename js/{ => legacy}/tiny_mce_33/plugins/xhtmlxtras/del.htm (100%) rename js/{ => legacy}/tiny_mce_33/plugins/xhtmlxtras/editor_plugin.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/xhtmlxtras/editor_plugin_src.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/xhtmlxtras/ins.htm (100%) rename js/{ => legacy}/tiny_mce_33/plugins/xhtmlxtras/js/abbr.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/xhtmlxtras/js/acronym.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/xhtmlxtras/js/attributes.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/xhtmlxtras/js/cite.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/xhtmlxtras/js/del.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/xhtmlxtras/js/element_common.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/xhtmlxtras/js/ins.js (100%) rename js/{ => legacy}/tiny_mce_33/plugins/xhtmlxtras/langs/en_dlg.js (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/about.htm (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/anchor.htm (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/charmap.htm (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/color_picker.htm (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/editor_template.js (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/editor_template_src.js (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/image.htm (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/img/colorpicker.jpg (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/img/icons.gif (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/js/about.js (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/js/anchor.js (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/js/charmap.js (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/js/color_picker.js (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/js/image.js (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/js/link.js (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/js/source_editor.js (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/langs/en.js (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/langs/en_dlg.js (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/link.htm (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/skins/default/content.css (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/skins/default/dialog.css (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/skins/default/img/buttons.png (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/skins/default/img/items.gif (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/skins/default/img/menu_arrow.gif (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/skins/default/img/menu_check.gif (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/skins/default/img/progress.gif (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/skins/default/img/tabs.gif (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/skins/default/ui.css (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/skins/o2k7/content.css (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/skins/o2k7/dialog.css (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/skins/o2k7/img/button_bg.png (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/skins/o2k7/img/button_bg_black.png (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/skins/o2k7/img/button_bg_silver.png (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/skins/o2k7/ui.css (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/skins/o2k7/ui_black.css (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/skins/o2k7/ui_silver.css (100%) rename js/{ => legacy}/tiny_mce_33/themes/advanced/source_editor.htm (100%) rename js/{ => legacy}/tiny_mce_33/themes/simple/editor_template.js (100%) rename js/{ => legacy}/tiny_mce_33/themes/simple/editor_template_src.js (100%) rename js/{ => legacy}/tiny_mce_33/themes/simple/img/icons.gif (100%) rename js/{ => legacy}/tiny_mce_33/themes/simple/langs/en.js (100%) rename js/{ => legacy}/tiny_mce_33/themes/simple/skins/default/content.css (100%) rename js/{ => legacy}/tiny_mce_33/themes/simple/skins/default/ui.css (100%) rename js/{ => legacy}/tiny_mce_33/themes/simple/skins/o2k7/content.css (100%) rename js/{ => legacy}/tiny_mce_33/themes/simple/skins/o2k7/img/button_bg.png (100%) rename js/{ => legacy}/tiny_mce_33/themes/simple/skins/o2k7/ui.css (100%) rename js/{ => legacy}/tiny_mce_33/tiny_mce.js (100%) rename js/{ => legacy}/tiny_mce_33/tiny_mce_popup.js (100%) rename js/{ => legacy}/tiny_mce_33/tiny_mce_src.js (100%) rename js/{ => legacy}/tiny_mce_33/utils/editable_selects.js (100%) rename js/{ => legacy}/tiny_mce_33/utils/form_utils.js (100%) rename js/{ => legacy}/tiny_mce_33/utils/mctabs.js (100%) rename js/{ => legacy}/tiny_mce_33/utils/validate.js (100%) rename js/{ => legacy}/user.js (100%) rename js/{ => legacy}/utils/browser_detect.js (100%) rename js/{ => legacy}/utils/datatype.js (100%) rename js/{ => legacy}/utils/datetime.js (100%) rename js/{ => legacy}/utils/dom.js (96%) rename js/{ => legacy}/utils/handler.js (100%) rename js/{ => legacy}/utils/json.js (100%) rename js/{ => legacy}/utils/msgprint.js (100%) rename js/{ => legacy}/utils/printElement.js (100%) rename js/{ => legacy}/utils/rsh.compressed.js (100%) rename js/{ => legacy}/utils/shortcut.js (100%) rename js/{ => legacy}/webpage/about.js (100%) rename js/{ => legacy}/webpage/body.js (100%) rename js/{ => legacy}/webpage/docbrowser.js (100%) rename js/{ => legacy}/webpage/error_console.js (100%) create mode 100644 js/legacy/webpage/freeze_page.js rename js/{ => legacy}/webpage/history.js (100%) rename js/{ => legacy}/webpage/loaders.js (100%) rename js/{ => legacy}/webpage/page.js (100%) rename js/{ => legacy}/webpage/page_header.js (100%) rename js/{ => legacy}/webpage/search.js (100%) rename js/{ => legacy}/webpage/spinner.js (100%) rename js/{ => legacy}/webpage/uploader.js (100%) rename js/{ => legacy}/webpage/wntoolbar.js (100%) rename js/{ => legacy}/widgets/autosuggest.js (100%) rename js/{ => legacy}/widgets/calendar.js (100%) rename js/{ => legacy}/widgets/dialog.js (100%) rename js/{ => legacy}/widgets/export_query.js (100%) rename js/{ => legacy}/widgets/form/attachments.js (100%) rename js/{ => legacy}/widgets/form/clientscriptAPI.js (100%) rename js/{ => legacy}/widgets/form/email.js (100%) rename js/{ => legacy}/widgets/form/fields.js (100%) rename js/{ => legacy}/widgets/form/form.js (100%) rename js/{ => legacy}/widgets/form/form_comments.js (100%) rename js/{ => legacy}/widgets/form/form_container.js (100%) rename js/{ => legacy}/widgets/form/form_fields.js (100%) rename js/{ => legacy}/widgets/form/form_grid.js (100%) rename js/{ => legacy}/widgets/form/form_header.js (100%) rename js/{ => legacy}/widgets/form/grid.js (100%) rename js/{ => legacy}/widgets/form/print_format.js (100%) rename js/{ => legacy}/widgets/layout.js (100%) rename js/{ => legacy}/widgets/list_selector.js (100%) rename js/{ => legacy}/widgets/listing.js (100%) rename js/{ => legacy}/widgets/menu.js (100%) rename js/{ => legacy}/widgets/print_query.js (100%) rename js/{ => legacy}/widgets/report_builder/bargraph.js (100%) rename js/{ => legacy}/widgets/report_builder/calculator.js (100%) rename js/{ => legacy}/widgets/report_builder/datatable.js (100%) rename js/{ => legacy}/widgets/report_builder/report_builder.js (100%) rename js/{ => legacy}/widgets/select.js (100%) rename js/{ => legacy}/widgets/tabbedpage.js (100%) rename js/{ => legacy}/widgets/tags.js (100%) rename js/{ => legacy}/widgets/tree.js (97%) rename js/{ => legacy}/wn/modules.js (100%) rename js/{ => legacy}/wn/page_layout.js (100%) rename js/{ => legacy}/wn/widgets/dialog.js (98%) rename js/{ => legacy}/wn/widgets/doc_column_view.js (100%) rename js/{ => legacy}/wn/widgets/filters.js (100%) rename js/{ => legacy}/wn/widgets/follow.js (100%) rename js/{ => legacy}/wn/widgets/footer.js (100%) rename js/{ => legacy}/wn/widgets/form/attachments.js (100%) rename js/{ => legacy}/wn/widgets/form/comments.js (100%) rename js/{ => legacy}/wn/widgets/form/sidebar.js (100%) rename js/{ => legacy}/wn/widgets/listing.js (100%) rename js/{ => legacy}/wn/widgets/page_sidebar.js (100%) rename js/{ => legacy}/wnf.compressed.js (93%) delete mode 100644 js/webpage/freeze_page.js delete mode 100644 js/wn-coffee/app.coffee delete mode 100644 js/wn-coffee/widgets/form/form.coffee rename {cgi-bin => py}/core/Module Def/Core/Core.txt (100%) rename {cgi-bin => py}/core/Role/Administrator/Administrator.txt (100%) rename {cgi-bin => py}/core/Role/All/All.txt (100%) rename {cgi-bin => py}/core/Role/Guest/Guest.txt (100%) rename {cgi-bin => py}/core/__init__.py (100%) rename {cgi-bin => py}/core/doctype/__init__.py (100%) rename {cgi-bin => py}/core/doctype/comment_widget_record/__init__.py (100%) rename {cgi-bin => py}/core/doctype/comment_widget_record/comment_widget_record.txt (100%) rename {cgi-bin => py}/core/doctype/control_panel/__init__.py (100%) rename {cgi-bin => py}/core/doctype/control_panel/control_panel.py (100%) rename {cgi-bin => py}/core/doctype/control_panel/control_panel.txt (100%) rename {cgi-bin => py}/core/doctype/custom_field/__init__.py (100%) rename {cgi-bin => py}/core/doctype/custom_field/custom_field.js (100%) rename {cgi-bin => py}/core/doctype/custom_field/custom_field.py (100%) rename {cgi-bin => py}/core/doctype/custom_field/custom_field.txt (100%) rename {cgi-bin => py}/core/doctype/custom_script/__init__.py (100%) rename {cgi-bin => py}/core/doctype/custom_script/custom_script.txt (100%) rename {cgi-bin => py}/core/doctype/default_home_page/__init__.py (100%) rename {cgi-bin => py}/core/doctype/default_home_page/default_home_page.txt (100%) rename {cgi-bin => py}/core/doctype/defaultvalue/__init__.py (100%) rename {cgi-bin => py}/core/doctype/defaultvalue/defaultvalue.txt (100%) rename {cgi-bin => py}/core/doctype/docfield/__init__.py (100%) rename {cgi-bin => py}/core/doctype/docfield/docfield.txt (100%) rename {cgi-bin => py}/core/doctype/docformat/__init__.py (100%) rename {cgi-bin => py}/core/doctype/docformat/docformat.txt (100%) rename {cgi-bin => py}/core/doctype/docperm/__init__.py (100%) rename {cgi-bin => py}/core/doctype/docperm/docperm.txt (100%) rename {cgi-bin => py}/core/doctype/doctrigger/__init__.py (100%) rename {cgi-bin => py}/core/doctype/doctrigger/doctrigger.txt (100%) rename {cgi-bin => py}/core/doctype/doctype/__init__.py (100%) rename {cgi-bin => py}/core/doctype/doctype/doctype.js (100%) rename {cgi-bin => py}/core/doctype/doctype/doctype.py (100%) rename {cgi-bin => py}/core/doctype/doctype/doctype.txt (100%) rename {cgi-bin => py}/core/doctype/doctype_label/__init__.py (100%) rename {cgi-bin => py}/core/doctype/doctype_label/doctype_label.txt (100%) rename {cgi-bin => py}/core/doctype/doctype_mapper/__init__.py (100%) rename {cgi-bin => py}/core/doctype/doctype_mapper/doctype_mapper.js (100%) rename {cgi-bin => py}/core/doctype/doctype_mapper/doctype_mapper.py (100%) rename {cgi-bin => py}/core/doctype/doctype_mapper/doctype_mapper.txt (100%) rename {cgi-bin => py}/core/doctype/event/__init__.py (100%) rename {cgi-bin => py}/core/doctype/event/event.js (100%) rename {cgi-bin => py}/core/doctype/event/event.txt (100%) rename {cgi-bin => py}/core/doctype/event_role/__init__.py (100%) rename {cgi-bin => py}/core/doctype/event_role/event_role.txt (100%) rename {cgi-bin => py}/core/doctype/event_user/__init__.py (100%) rename {cgi-bin => py}/core/doctype/event_user/event_user.txt (100%) rename {cgi-bin => py}/core/doctype/field_mapper_detail/__init__.py (100%) rename {cgi-bin => py}/core/doctype/field_mapper_detail/field_mapper_detail.txt (100%) rename {cgi-bin => py}/core/doctype/file/__init__.py (100%) rename {cgi-bin => py}/core/doctype/file/file.py (100%) rename {cgi-bin => py}/core/doctype/file/file.txt (100%) rename {cgi-bin => py}/core/doctype/file_data/__init__.py (100%) rename {cgi-bin => py}/core/doctype/file_data/file_data.txt (100%) rename {cgi-bin => py}/core/doctype/file_group/__init__.py (100%) rename {cgi-bin => py}/core/doctype/file_group/file_group.txt (100%) rename {cgi-bin => py}/core/doctype/letter_head/__init__.py (100%) rename {cgi-bin => py}/core/doctype/letter_head/letter_head.js (100%) rename {cgi-bin => py}/core/doctype/letter_head/letter_head.py (100%) rename {cgi-bin => py}/core/doctype/letter_head/letter_head.txt (100%) rename {cgi-bin => py}/core/doctype/module_def/__init__.py (100%) rename {cgi-bin => py}/core/doctype/module_def/module_def.py (100%) rename {cgi-bin => py}/core/doctype/module_def/module_def.txt (100%) rename {cgi-bin => py}/core/doctype/module_def_item/__init__.py (100%) rename {cgi-bin => py}/core/doctype/module_def_item/module_def_item.txt (100%) rename {cgi-bin => py}/core/doctype/module_def_role/__init__.py (100%) rename {cgi-bin => py}/core/doctype/module_def_role/module_def_role.txt (100%) rename {cgi-bin => py}/core/doctype/page/__init__.py (100%) rename {cgi-bin => py}/core/doctype/page/page.py (100%) rename {cgi-bin => py}/core/doctype/page/page.txt (100%) rename {cgi-bin => py}/core/doctype/page_role/__init__.py (100%) rename {cgi-bin => py}/core/doctype/page_role/page_role.txt (100%) rename {cgi-bin => py}/core/doctype/page_template/__init__.py (100%) rename {cgi-bin => py}/core/doctype/page_template/page_template.py (100%) rename {cgi-bin => py}/core/doctype/page_template/page_template.txt (100%) rename {cgi-bin => py}/core/doctype/print_format/__init__.py (100%) rename {cgi-bin => py}/core/doctype/print_format/print_format.txt (100%) rename {cgi-bin => py}/core/doctype/profile/__init__.py (100%) rename {cgi-bin => py}/core/doctype/profile/profile.js (100%) rename {cgi-bin => py}/core/doctype/profile/profile.py (100%) rename {cgi-bin => py}/core/doctype/profile/profile.txt (100%) rename {cgi-bin => py}/core/doctype/property_setter/__init__.py (100%) rename {cgi-bin => py}/core/doctype/property_setter/property_setter.comp.js (100%) rename {cgi-bin => py}/core/doctype/property_setter/property_setter.js (100%) rename {cgi-bin => py}/core/doctype/property_setter/property_setter.py (100%) rename {cgi-bin => py}/core/doctype/property_setter/property_setter.txt (100%) rename {cgi-bin => py}/core/doctype/role/__init__.py (100%) rename {cgi-bin => py}/core/doctype/role/role.js (100%) rename {cgi-bin => py}/core/doctype/role/role.txt (100%) rename {cgi-bin => py}/core/doctype/sandbox/__init__.py (100%) rename {cgi-bin => py}/core/doctype/sandbox/import_test.js (100%) rename {cgi-bin => py}/core/doctype/sandbox/my_trigger.sql (100%) rename {cgi-bin => py}/core/doctype/sandbox/sandbox.js (100%) rename {cgi-bin => py}/core/doctype/sandbox/sandbox.txt (100%) rename {cgi-bin => py}/core/doctype/search_criteria/__init__.py (100%) rename {cgi-bin => py}/core/doctype/search_criteria/search_criteria.py (100%) rename {cgi-bin => py}/core/doctype/search_criteria/search_criteria.txt (100%) rename {cgi-bin => py}/core/doctype/stylesheet/__init__.py (100%) rename {cgi-bin => py}/core/doctype/stylesheet/stylesheet.py (100%) rename {cgi-bin => py}/core/doctype/stylesheet/stylesheet.txt (100%) rename {cgi-bin => py}/core/doctype/system_console/__init__.py (100%) rename {cgi-bin => py}/core/doctype/system_console/system_console.comp.js (100%) rename {cgi-bin => py}/core/doctype/system_console/system_console.js (100%) rename {cgi-bin => py}/core/doctype/system_console/system_console.py (100%) rename {cgi-bin => py}/core/doctype/system_console/system_console.txt (100%) rename {cgi-bin => py}/core/doctype/table_mapper_detail/__init__.py (100%) rename {cgi-bin => py}/core/doctype/table_mapper_detail/table_mapper_detail.txt (100%) rename {cgi-bin => py}/core/doctype/tag/__init__.py (100%) rename {cgi-bin => py}/core/doctype/tag/tag.txt (100%) rename {cgi-bin => py}/core/doctype/userrole/__init__.py (100%) rename {cgi-bin => py}/core/doctype/userrole/userrole.txt (100%) rename {cgi-bin => py}/core/page/__init__.py (100%) rename {cgi-bin => py}/core/page/login_page/__init__.py (100%) rename {cgi-bin => py}/core/page/login_page/login_page.html (100%) rename {cgi-bin => py}/core/page/login_page/login_page.js (100%) rename {cgi-bin => py}/core/page/login_page/login_page.txt (100%) rename {cgi-bin => py}/core/page/login_page/login_page_static.html (100%) rename {cgi-bin => py}/webnotes/__init__.py (100%) rename {cgi-bin => py}/webnotes/auth.py (100%) rename {cgi-bin => py}/webnotes/db.py (100%) rename {cgi-bin => py}/webnotes/defs_template.py (100%) rename {cgi-bin => py}/webnotes/handler.py (100%) rename {cgi-bin => py}/webnotes/install_lib/__init__.py (100%) rename {cgi-bin => py}/webnotes/install_lib/db_init.py (100%) rename {cgi-bin => py}/webnotes/install_lib/install.py (100%) rename {cgi-bin => py}/webnotes/model/__init__.py (100%) rename {cgi-bin => py}/webnotes/model/code.py (100%) rename {cgi-bin => py}/webnotes/model/db_schema.py (100%) rename {cgi-bin => py}/webnotes/model/doc.py (100%) rename {cgi-bin => py}/webnotes/model/doclist.py (100%) rename {cgi-bin => py}/webnotes/model/doctype.py (100%) rename {cgi-bin => py}/webnotes/model/import_docs.py (100%) rename {cgi-bin => py}/webnotes/model/meta.py (100%) rename {cgi-bin => py}/webnotes/model/modules.py (100%) rename {cgi-bin => py}/webnotes/model/sql_sync.py (100%) rename {cgi-bin => py}/webnotes/model/triggers.py (100%) rename {cgi-bin => py}/webnotes/model/utils.py (100%) rename {cgi-bin => py}/webnotes/modules/__init__.py (100%) rename {cgi-bin => py}/webnotes/modules/export_module.py (100%) rename {cgi-bin => py}/webnotes/modules/module_manager.py (100%) rename {cgi-bin => py}/webnotes/modules/patch.py (100%) rename {cgi-bin => py}/webnotes/modules/utils.py (100%) rename {cgi-bin => py}/webnotes/multi_tenant/__init__.py (100%) rename {cgi-bin => py}/webnotes/multi_tenant/query_parser.py (100%) rename {cgi-bin => py}/webnotes/multi_tenant/setup.py (100%) rename {cgi-bin => py}/webnotes/profile.py (100%) rename {cgi-bin => py}/webnotes/session_cache.py (100%) rename {cgi-bin => py}/webnotes/tests.py (100%) rename {cgi-bin => py}/webnotes/tests/__init__.py (100%) rename {cgi-bin => py}/webnotes/tests/modules.py (100%) rename {cgi-bin => py}/webnotes/utils/__init__.py (100%) rename {cgi-bin => py}/webnotes/utils/archive.py (100%) rename {cgi-bin => py}/webnotes/utils/backups.py (100%) rename {cgi-bin => py}/webnotes/utils/cache.py (100%) rename {cgi-bin => py}/webnotes/utils/email_lib/__init__.py (100%) rename {cgi-bin => py}/webnotes/utils/email_lib/form_email.py (100%) rename {cgi-bin => py}/webnotes/utils/email_lib/html2text.py (100%) rename {cgi-bin => py}/webnotes/utils/email_lib/receive.py (100%) rename {cgi-bin => py}/webnotes/utils/email_lib/send.py (100%) rename {cgi-bin => py}/webnotes/utils/encrypt.py (100%) rename {cgi-bin => py}/webnotes/utils/file_manager.py (100%) rename {cgi-bin => py}/webnotes/utils/jslib/jsdependency.py (100%) rename {cgi-bin => py}/webnotes/utils/jslib/jsmin.py (100%) rename {cgi-bin => py}/webnotes/utils/jslib/jsnamespace.py (100%) rename {cgi-bin => py}/webnotes/utils/jslib/jstimestamp.py (100%) rename {cgi-bin => py}/webnotes/utils/nestedset.py (100%) rename {cgi-bin => py}/webnotes/utils/scheduler.py (100%) rename {cgi-bin => py}/webnotes/utils/sitemap.py (100%) rename {cgi-bin => py}/webnotes/utils/transfer.py (100%) rename {cgi-bin => py}/webnotes/utils/webservice.py (100%) rename {cgi-bin => py}/webnotes/widgets/__init__.py (100%) rename {cgi-bin => py}/webnotes/widgets/auto_master.py (100%) rename {cgi-bin => py}/webnotes/widgets/event.py (100%) rename {cgi-bin => py}/webnotes/widgets/follow.py (100%) rename {cgi-bin => py}/webnotes/widgets/form.py (100%) rename {cgi-bin => py}/webnotes/widgets/menus.py (100%) rename {cgi-bin => py}/webnotes/widgets/page.py (100%) rename {cgi-bin => py}/webnotes/widgets/page_body.py (100%) rename {cgi-bin => py}/webnotes/widgets/query_builder.py (100%) rename {cgi-bin => py}/webnotes/widgets/search.py (100%) rename {cgi-bin => py}/webnotes/widgets/tags.py (100%) rename {cgi-bin => py}/webnotes/widgets/todo.py (100%) delete mode 100644 robots.txt delete mode 100644 test.html diff --git a/INSTALL.txt b/INSTALL.md similarity index 78% rename from INSTALL.txt rename to INSTALL.md index 58bfec90b6..15048a468c 100644 --- a/INSTALL.txt +++ b/INSTALL.md @@ -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 diff --git a/README b/README deleted file mode 100644 index 06857ed75a..0000000000 --- a/README +++ /dev/null @@ -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. diff --git a/README.md b/README.md new file mode 100644 index 0000000000..965ad1145d --- /dev/null +++ b/README.md @@ -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 \ No newline at end of file diff --git a/blank.html b/blank.html deleted file mode 100755 index 2488c5be1c..0000000000 --- a/blank.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - -

blank.html - Needed for Internet Explorer's hidden iframe

-

- - - diff --git a/blank1.html b/blank1.html deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/cgi-bin/backupall.py b/cgi-bin/backupall.py deleted file mode 100644 index eb4954b0c6..0000000000 --- a/cgi-bin/backupall.py +++ /dev/null @@ -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) \ No newline at end of file diff --git a/cgi-bin/compilejs.py b/cgi-bin/compilejs.py deleted file mode 100644 index 9c2a8e1af8..0000000000 --- a/cgi-bin/compilejs.py +++ /dev/null @@ -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') diff --git a/cgi-bin/core/module.info b/cgi-bin/core/module.info deleted file mode 100644 index f51efd8b20..0000000000 --- a/cgi-bin/core/module.info +++ /dev/null @@ -1 +0,0 @@ -{'update_date': '2011-03-18 18:12:06'} \ No newline at end of file diff --git a/cgi-bin/get_module_js.cgi b/cgi-bin/get_module_js.cgi deleted file mode 100755 index 2845026485..0000000000 --- a/cgi-bin/get_module_js.cgi +++ /dev/null @@ -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','
') diff --git a/cgi-bin/getfile.cgi b/cgi-bin/getfile.cgi deleted file mode 100755 index cd652c0b6d..0000000000 --- a/cgi-bin/getfile.cgi +++ /dev/null @@ -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','
')} - except: - out = {'exc': e} - print - print str(out) diff --git a/cgi-bin/getjsfile.cgi b/cgi-bin/getjsfile.cgi deleted file mode 100755 index 0e1594fc04..0000000000 --- a/cgi-bin/getjsfile.cgi +++ /dev/null @@ -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','
') diff --git a/cgi-bin/pypi-setup.py b/cgi-bin/pypi-setup.py deleted file mode 100755 index 07c6bb952d..0000000000 --- a/cgi-bin/pypi-setup.py +++ /dev/null @@ -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", -) - diff --git a/compress.py b/compress.py deleted file mode 100644 index 408e531d33..0000000000 --- a/compress.py +++ /dev/null @@ -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' - diff --git a/sitemap.xml b/conf/sitemap.xml similarity index 100% rename from sitemap.xml rename to conf/sitemap.xml diff --git a/css/autosuggest.css b/css/legacy/autosuggest.css similarity index 100% rename from css/autosuggest.css rename to css/legacy/autosuggest.css diff --git a/css/body.css b/css/legacy/body.css similarity index 100% rename from css/body.css rename to css/legacy/body.css diff --git a/css/bw-icons.css b/css/legacy/bw-icons.css similarity index 99% rename from css/bw-icons.css rename to css/legacy/bw-icons.css index 4f42de4488..1d9dcdbcce 100644 --- a/css/bw-icons.css +++ b/css/legacy/bw-icons.css @@ -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; } diff --git a/css/calendar.css b/css/legacy/calendar.css similarity index 100% rename from css/calendar.css rename to css/legacy/calendar.css diff --git a/css/default.css b/css/legacy/default.css similarity index 94% rename from css/default.css rename to css/legacy/default.css index c1f0f8b44f..4dfba54852 100644 --- a/css/default.css +++ b/css/legacy/default.css @@ -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; } diff --git a/css/dialog.css b/css/legacy/dialog.css similarity index 100% rename from css/dialog.css rename to css/legacy/dialog.css diff --git a/css/doc_column_view.css b/css/legacy/doc_column_view.css similarity index 100% rename from css/doc_column_view.css rename to css/legacy/doc_column_view.css diff --git a/css/forms.css b/css/legacy/forms.css similarity index 100% rename from css/forms.css rename to css/legacy/forms.css diff --git a/css/grid.css b/css/legacy/grid.css similarity index 100% rename from css/grid.css rename to css/legacy/grid.css diff --git a/css/images/ui-bg_flat_0_aaaaaa_40x100.png b/css/legacy/images/ui-bg_flat_0_aaaaaa_40x100.png similarity index 100% rename from css/images/ui-bg_flat_0_aaaaaa_40x100.png rename to css/legacy/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/css/images/ui-bg_flat_75_ffffff_40x100.png b/css/legacy/images/ui-bg_flat_75_ffffff_40x100.png similarity index 100% rename from css/images/ui-bg_flat_75_ffffff_40x100.png rename to css/legacy/images/ui-bg_flat_75_ffffff_40x100.png diff --git a/css/images/ui-bg_glass_55_fbf9ee_1x400.png b/css/legacy/images/ui-bg_glass_55_fbf9ee_1x400.png similarity index 100% rename from css/images/ui-bg_glass_55_fbf9ee_1x400.png rename to css/legacy/images/ui-bg_glass_55_fbf9ee_1x400.png diff --git a/css/images/ui-bg_glass_95_fef1ec_1x400.png b/css/legacy/images/ui-bg_glass_95_fef1ec_1x400.png similarity index 100% rename from css/images/ui-bg_glass_95_fef1ec_1x400.png rename to css/legacy/images/ui-bg_glass_95_fef1ec_1x400.png diff --git a/css/images/ui-bg_highlight-hard_65_ffffff_1x100.png b/css/legacy/images/ui-bg_highlight-hard_65_ffffff_1x100.png similarity index 100% rename from css/images/ui-bg_highlight-hard_65_ffffff_1x100.png rename to css/legacy/images/ui-bg_highlight-hard_65_ffffff_1x100.png diff --git a/css/images/ui-bg_highlight-hard_75_dadada_1x100.png b/css/legacy/images/ui-bg_highlight-hard_75_dadada_1x100.png similarity index 100% rename from css/images/ui-bg_highlight-hard_75_dadada_1x100.png rename to css/legacy/images/ui-bg_highlight-hard_75_dadada_1x100.png diff --git a/css/images/ui-bg_highlight-hard_75_e6e6e6_1x100.png b/css/legacy/images/ui-bg_highlight-hard_75_e6e6e6_1x100.png similarity index 100% rename from css/images/ui-bg_highlight-hard_75_e6e6e6_1x100.png rename to css/legacy/images/ui-bg_highlight-hard_75_e6e6e6_1x100.png diff --git a/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/css/legacy/images/ui-bg_highlight-soft_75_cccccc_1x100.png similarity index 100% rename from css/images/ui-bg_highlight-soft_75_cccccc_1x100.png rename to css/legacy/images/ui-bg_highlight-soft_75_cccccc_1x100.png diff --git a/css/images/ui-icons_222222_256x240.png b/css/legacy/images/ui-icons_222222_256x240.png similarity index 100% rename from css/images/ui-icons_222222_256x240.png rename to css/legacy/images/ui-icons_222222_256x240.png diff --git a/css/images/ui-icons_2e83ff_256x240.png b/css/legacy/images/ui-icons_2e83ff_256x240.png similarity index 100% rename from css/images/ui-icons_2e83ff_256x240.png rename to css/legacy/images/ui-icons_2e83ff_256x240.png diff --git a/css/images/ui-icons_454545_256x240.png b/css/legacy/images/ui-icons_454545_256x240.png similarity index 100% rename from css/images/ui-icons_454545_256x240.png rename to css/legacy/images/ui-icons_454545_256x240.png diff --git a/css/images/ui-icons_888888_256x240.png b/css/legacy/images/ui-icons_888888_256x240.png similarity index 100% rename from css/images/ui-icons_888888_256x240.png rename to css/legacy/images/ui-icons_888888_256x240.png diff --git a/css/images/ui-icons_cd0a0a_256x240.png b/css/legacy/images/ui-icons_cd0a0a_256x240.png similarity index 100% rename from css/images/ui-icons_cd0a0a_256x240.png rename to css/legacy/images/ui-icons_cd0a0a_256x240.png diff --git a/css/jqplot.css b/css/legacy/jqplot.css similarity index 100% rename from css/jqplot.css rename to css/legacy/jqplot.css diff --git a/css/jquery-ui.css b/css/legacy/jquery-ui.css similarity index 100% rename from css/jquery-ui.css rename to css/legacy/jquery-ui.css diff --git a/css/listing.css b/css/legacy/listing.css similarity index 100% rename from css/listing.css rename to css/legacy/listing.css diff --git a/css/menus.css b/css/legacy/menus.css similarity index 100% rename from css/menus.css rename to css/legacy/menus.css diff --git a/css/messages.css b/css/legacy/messages.css similarity index 100% rename from css/messages.css rename to css/legacy/messages.css diff --git a/css/report.css b/css/legacy/report.css similarity index 100% rename from css/report.css rename to css/legacy/report.css diff --git a/css/sidebar.css b/css/legacy/sidebar.css similarity index 100% rename from css/sidebar.css rename to css/legacy/sidebar.css diff --git a/css/tabs.css b/css/legacy/tabs.css similarity index 100% rename from css/tabs.css rename to css/legacy/tabs.css diff --git a/css/user.css b/css/legacy/user.css similarity index 100% rename from css/user.css rename to css/legacy/user.css diff --git a/css/wntoolbar.css b/css/legacy/wntoolbar.css similarity index 55% rename from css/wntoolbar.css rename to css/legacy/wntoolbar.css index 163943a6d9..b54c1f1e4f 100644 --- a/css/wntoolbar.css +++ b/css/legacy/wntoolbar.css @@ -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; } diff --git a/data/Framework.sql b/data/Framework.sql deleted file mode 100644 index 27faa19913..0000000000 --- a/data/Framework.sql +++ /dev/null @@ -1,245 +0,0 @@ --- Core Elements to install WNFramework --- To be called from install.py - - --- --- Table structure for table `__DocTypeCache` --- - -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 */; - --- --- Table structure for table `__SessionCache` --- - -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 */; - - - --- --- Table structure for table `tabDocField` --- - -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 */; - --- --- Table structure for table `tabDocFormat` --- - -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 */; - --- --- Table structure for table `tabDocPerm` --- - -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 */; - --- --- Table structure for table `tabDocType` --- - -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 */; - --- --- Table structure for table `tabSeries` --- - -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 */; - - --- --- Table structure for table `tabSessions` --- - -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 */; - - --- --- Table structure for table `tabSingles` --- - -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; - diff --git a/images/icons/Accounts.gif b/images/icons/Accounts.gif deleted file mode 100755 index 62f2d5fc427ee0c6d07274179339ace87d1318b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1042 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 diff --git a/images/icons/Analysis.gif b/images/icons/Analysis.gif deleted file mode 100755 index bb2277aef1de2e5016b30d431f0921eeda20adc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1017 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 PJw`)aGo3nZc-(&g4l60{ diff --git a/images/icons/HR.gif b/images/icons/HR.gif deleted file mode 100755 index bc98682972e1536e37e7894d629724fb40a8dfd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1012 zcmeIx+fPyf0LSrzlIhZ-=B0~UYPM=~Zmk}0_Fy^1oNbnEt?5J7TD2Z>&WGm6Y1q`} z01XJK&_Ym415}P6nOp|va1_LpG^Z$6MMV$<lZ-~)J!5S=cdo+o1dSXQX?jl;SZnB%cy%YulwWV3~%H#2jibNBT0#+(qj&--osYX(rA7WZzh&QQJLkhr_XDw^@}6dHc(nU?8B?YP&i+ z+Zt-b!eKs-C;9&EOCM)+ROH>+?qQIY78h++qs6qu;|@62tboigaoDUd4Ew!qNFiUfnm5+WgS}lXEzJSH&#vgG3^GASlqN zCoIM#3WYL0CI*LiV$q1xZtL!5kqOU30bl>;o)H!$7z{2f{DL8+YkTYKK;O?9jY2*? zJjfLb1zPPihr@9?osNw)`dcc#ih6TDeP9}DV_M90UR7`EZkN}kiAN(Ps8Wc^FTWRg#vPa16OdPlmGw# diff --git a/images/icons/HR.png b/images/icons/HR.png deleted file mode 100755 index ec916a2d028ac9291c4941e38e6814b2f7cfac05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3751 zcmV;Y4p{MtP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}000BRNklC>nG|NsBbfYnR@00030|H5t&7Qn*5z`&rSq{I*#6Lm~W zlF#z%lUoem{`_YUlu}^OwfAH=e&W=d^o%S~76t|e1|uUw;TJDn{>jbGWDpV-W%&2+ zFT?ZaPZ>(fsxFwDnMxso@YgpxKVL6(7FITfS1(^OyngkH;qTx73~{m1QU?$0%^=B* z0M^JKmVr2c!tZ`Z#UL8h?RGILsnLjCh*8p2BB`rE*vm|b!M_S)FTKXlTq=k`Vv%5# z$ldu}hy*<@ch_g?-ocx{Z~0!wpg@OHRth?b8=L4)CMTw+CUfa@O8X5$X_~dN>o{in zz^=A&e|vRdo$Vp^ztHUK#Zu*T&bqn#+}_z;1aJg>IS)d zSYKPUNkRx!MJ6+{U^@I)DRs;c=O6}xO9vM}FW~e2d>@`YH|{kF{&7+O_wU_h_2n9tWl^b| ztKGSN<>t2a4d1nqVHX97s_Nv85%!N9BxfAr$?|HwR(m`PbOHCzr#&MSMFHS|Fv76@S@+76d4o-dnby&@&v{M_XwpwKIf2xkEROi0GdHqU0diY@R!^cnf z!B2K~Jz^Py0#O*^3PIQnXj&F$PM^B=cHNZI(=(-XCTsRFOe*nIX<~A8FqdaAmuJ4Z zz?Y2;tmbEi4TDTJi`Vh6cYbiBSmb#5L=VAMv$5~pdi`jhHdm{&1c8t1didR7NK>_< zs_6wiogI}Vhf)J6HICv?2q8SzX$_S~<_`W{5w_jq&NX-(@jjUhL0-1z(F$G<;6E*LqV)3$wm^Z3C7`({NY zo<4nQNnXhXW7iW$4&So&{rU6fWv8GkSFS9o3TP@xetZAaueWboN|OJ4eEQ9E zS`!fU>d36!Gm8IweY&u{%@Xm;VrlK>bTPcau_HO_oP&Es zN~+L-1I-hdSIcY&a!MC#HRNA5;m2f$#)ZQDQ46}3G@TK%-lWDd;cJ_h1V{XmEsR^2 zH!B5gGMlQY=1dCi*u3+^y3+iac6RVVgTeQjW{1^_%m(>MSC diff --git a/images/icons/Home.png b/images/icons/Home.png deleted file mode 100755 index 400c19fc032fda29a51ed492e139fe24faa1b32a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3917 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 diff --git a/images/icons/Production.gif b/images/icons/Production.gif deleted file mode 100755 index 4a39f543bb8c1953a87dec056709f651be186f70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1024 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 M^TaOGgAEMU0JBVJEdT%j diff --git a/images/icons/Projects.png b/images/icons/Projects.png deleted file mode 100755 index 82006e357f406381a17a59cd6106885a9559d6a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3822 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 diff --git a/images/icons/Selling.gif b/images/icons/Selling.gif deleted file mode 100755 index 7dd6717feb19ae7bf95c3ffddc5aad23af0c80fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 994 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 diff --git a/images/icons/Setup.gif b/images/icons/Setup.gif deleted file mode 100755 index 5a2f717804857d87e866b36d77f6ab6ce6979ac5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 528 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 diff --git a/images/icons/Stock.gif b/images/icons/Stock.gif deleted file mode 100755 index b6182da78d943557cfc59aacd0ad71601530178d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1030 zcmZ?wbhEHb6krfw_&%B8;EMLACl~(s@bv4WlW(r?dU0;$yW0m}UEcKN!O_=Ow>>#N z@B5R}|Ni}be{1iP<8wFk#`aXF%$wTz^1`~;7uU|{t)0KjrJg z6N@I4Jlx;^Xn)VkOB<&3)bE~?zr5D|!@VQl@9jFcqHX!SNed>`m8W>_*tU7=%=~-X z8&|dj?AyEh|G$4L7SH*3dByX+4G;EoEL%A1)8q5U*R+3rdTIaSs_UC-pB|sLVQRs? zc?B~I%^&P)Su>~Y!p@lsrg#7U|ED@Xc6x8a{oU=SPn~#qcFE2qZCfU%yt}o3O0Ma% zJqDXy1?%(3h&UZ2q)W zlM9zM`PYQXET2Dh_JpQCfBwuZcbeJXII*Q*&B|r3UcEZFvhBc%w$+QKKG-t>w*)T~Bw{-`-mP=*Wx*`}*(gYX1)g45NVJ5K#Qd!pOidnL!6+5-3kFa6D#E z=ali-@IXbf@{UH6&~c|$ey0N*k3PF4NOQTpVz{y6qTh54m8vr{MHD+`urdenU1(U4 zI@6&_?d!ou&Ml3zJ<>RCXeRK?^eig5km0Z(gGqnVBrm3-bfFe@vwt!(v=+Ku660Z* zI>RM{cQPmIp|+0)UNlW+Q8x0iVt(#1k)eP&qHuu&W1o1Y+DuQQj?;_xH~g3KdXjXB z(?t85L)4iHLw4OdwS@`6E1Z{{o}tg*xzT086agEVPC4DEqrK`(k#7z(EI&0xt#^e+ h<40BQiH*^GjUE%7c^C19`{?{~Jief?iII`P8UT85kgxy% diff --git a/images/icons/Stock.png b/images/icons/Stock.png deleted file mode 100755 index cf2fffa1f4d09e1c53e673b25fb2c0c92a52f7d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3635 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 FV1m?d#_0e6 diff --git a/images/icons/accept.gif b/images/icons/accept.gif deleted file mode 100644 index 29f3ed7c97eb2e5bd17a7e6bab98d696377cfda0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1024 zcmZ?wbhEHb6krfw_&%Ru-JPX#Z%mqSuD<9*M)SGyKYxF3f4F|@!*x|>a`TQPIW08y z+@NmXYwfboIA>eftmEx7PPc8lxOLj;wk@}o)$U1Kdw+KQj?7u7+G7q_7aUKWu%~bR zon_CzK797&@#5>#ChqKCeR=lWbKTo6Y;8YOwD9`W!0mdKC$n$9xnkdKU4N?J%dby0 zyHXy!eqg;&z4BnntSh~RJEP0@B-9|3oj-CkkZZ+PIz&iq4(r6)4xUz)J}=GOefiTPV2bGL_Yxw$lNYefFmh~ndE zIY+&>-d_`Q*w(b(@Zp<>wcFFSKin|$Y?u8^o3fLc-6tyEet(^I)N{&-{-V>Nn&qme z-|XLbclqX#$!XmLDils2^$_i=Vfo6|K!7s z$3S&5b~>3_CysS9Ff(!pa1CI4JIO94&@9fw!C(yl Dux)$+ diff --git a/images/icons/accept.png b/images/icons/accept.png deleted file mode 100755 index 89c8129a490b329f3165f32fa0781701aab417ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 781 zcmV+o1M>WdP)4-QibtN)VXQDpczE`xXAkUjh%RI>;okxb7K@0kpyQ1k_Y(|Oe7$m(^ zNYX>mI||sUbmn+c3<&FnE=4u#()KBS^SH8e)Qs5i!#lY=$-1gbH6VluzU=m=EP78&5vQ z-?+fFP-G2l&l_QzYealK$;1Rl?FkzXR&Jv@fBPNjCr#AYRyJ7UJQ0v#?)7Ott=>3`#-pV!7>9}>Q1jL)H6h&gkP@3nI=+F3nA~M>u#(n* z8T!#8oEw&-mED4!h4s!N@Jo3S7N&Q6%6l3}nlcd~X@>;uelvPsSkXIgg~e+^T1zSf z3SNj(5%jK~i8@b;Cz9+%6-+uD``q!Ud?zy_NcvsBLmlxlEdsDkJJ9TyFjMHsf zZZ1t(5E?wyXVsOtC+{6Ob?@kz2gjD)o_*!@`NwY`9=*G>ep6P!OvfX4c5J)5X6yYm zwr!@%&QDu%ZpxjHH|h>%CeDl4dV9t0JL{eMEv8-R?%7@D+G{iYOl$V4h>jiQE^era7Nq7s;=|3>+dg{ezkk^&82N8Yo=Z9eDU$w^>>%1A8+0JWLw7S;J!00adW~v zdL8SI=Z8-7?cG=1w!Lt{&1rLQOxkgEeaeFH#xteMPcAIk9=-nl(#>~QZn?XvX=~om z7Y81{dsKNaWyYEIv_%oCugoc1lYaKW@#i0&ww|p#_wwY_D_vP@qL*Emma{6VW>-q# zzWCamSruDSI#1M3I@&P#Y)9qZyd8Jf_g!kP-BjJRu3bAT7u=jW^*~e2;p~DPk^jMfVHD6T z1QdU=FfuT7Gw6V90Obh=j`IxSoH8C85)Lwp^8F160`i-?c{pAeq&tZkrrhz+%vjLE zVPdYrV7Y0@d0`G_evXKTiX1a!RMzzTY@DsNyhO^ z5`6Ytl!5hC4WnW}zr2KQT~_Fn7tPHKOu7n%jw!FtyOb?hAuz+~0*_Up&>Y_>&s+NC zm|7orTuR|?*qn1|izK7Rg9eS5GY-C6-1;U;M4mH{lxTFEF5q`BBX9%5Q8p%4d7hmI d*ty#s%F7zeELi*c7}TUTEMVAJcCdlL8UXEPTekoJ diff --git a/images/icons/add.png b/images/icons/add.png deleted file mode 100755 index 6332fefea4be19eeadf211b0b202b272e8564898..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 733 zcmV<30wVp1P)9VHk(~TedF+gQSL8D5xnVSSWAVY>J9b+m>@{iq7_KE}go~11+5s4;8hc+i0Xa zI1j@EX5!S+Me6HNqKzU5YQwL;-W5$p%ZMKMeR<%zp69-~?<4?8|C8S?bklXr4v&Ov zb&06v2|-x?qB`90yn>Qi%Sh2^G4n)$ZdyvTPf9}1)_buUT7>`e2G&2VU@~Bb(o+Mz zi4)>IxlSY${Dj4k={-9RzU^W5g9|2V5RZ2ZulL9s2xQbZ@r6eP9Ra5u(s|C0Nj#&4>wTSkb?%#=9?@ z^oxDy-O@tyN{L@by(WWvQ3%CyEu8x{+#Jb4-h&K9Owi)2pgg+heWDyked|3R$$kL@A z#sp1v-r+=G4B8D6DqsDH0@7OztA7aT9qc1Py{()w`m``?Y0&gi2=ROcc-9+nU^I6< zT=e_Y=vSnG@?3Ue{BW5ONFttcE!R-R_W4O01|0-|K-YNXLo2`4Qv z`r1LxR6#yf3FB%T95gJnaKKivA~Z}S9A(ZxEDK}O3T04USJ P00000NkvXXu0mjf^IS-S diff --git a/images/icons/anchor.png b/images/icons/anchor.png deleted file mode 100755 index 9b3422c61e5d23434d085834b82eed7a7363976e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 523 zcmV+m0`&cfP)JNR5;6} zQ!#78Koq{K0R;zL3K^ueKcPdX4$`e#^8*A?$4(UrP73NEC=L?Wb`e}#+M#4AI28&O z(h7D{iBLo^6ibLnntoS;4W+RSeem(_-M#O-mv=AJwr%ns(1oktvOHk&-Wjo2=gN^Bj3SRR*}a0NpG5_ zolK`M<47b@MJ$6*<9VLqM#|QJ9FOl*`~9c!VzJ0#yuW&YL-uTJXs#7SsfEK~0YXX4 z0b#F1DNRn42?6;6#8Y4fXr9klsZ>)*d^hj0J<{pZuy-`{@y zj;h&Iw&3c|KYvQ+UHS6;cUt#>uRni(|M@$(cx7PW%7%HzCvCacw)Spd(aM}DCttkz z_U-rYH=lmI`tUuY?{MYfn-SF;|NZ~}>HDuAfBt;^@%!DEAAkP;53gKTH0%8LU%#Kc z`uy?R@8tHqRm<+g)NM^@-Idt7yLj%UswKB#>b89P{yV;TXIR~5*{U@SoL&3~*`P0u-ExG;u_n#ks|9<%T zvtZ)El#YGHb1uIA^gVCNsaNm6-FyD&_rHJn(@y{T^CzTq&9A?I|NQ$mY3GaT<#+yr z0RtU@;!hSv28L(`9gv-%IALJl+7R8;+|nA&E*7b4#KOa8sNotcDasx#9x-#)>{;H? zkqZ_sS|kwd9<^fSs+Bs?@=+YlLi|czHUZXJfl>O=EKy-099$~=+NyrCQc>p7JW;F+ zVZ0uKjCP#%GEsWbd{N;H7cG>9u96B F0|05c7Qp}j diff --git a/images/icons/application.png b/images/icons/application.png deleted file mode 100755 index 1dee9e366094e87db68c606d0522d72d4b939818..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 464 zcmV;>0WbcEP)8e6`gpm!y1M!N^ZV(=IC*t) z{^;nqJv-tM$9J1L2QJ2DN!#51=1_l@G`2=6e0lehL%sic%`_4--LFM}IF!KzJCseW zq1I3__Z40|e?qyK1__gzP(qrBf-G7SQbQ`#Lw94WVe(o`qg+f4hy;Qju)q#I(9{`% zQmAGomzhQ!b|gq>KqL@IkO~$=Koi}a$u6d07kiS}NoYVMJjAeZpaB*;wwcDdEbK@K zNP;B7RzhQ|H9AlUO<`J>m1(5R)Pb-iLBb@7Jp)}LHdAb-VVgYxVoTzGoqu{~a>6uj zeqCRFI9pC#h09bGwy9;oHcp6(RB%jeY^F=Ll!S+9JkVe4nDG7tJMQiP00000Ag3?`k8$#1J0F}NdayEtTz+~+#EG995YAF(1xew#=1J)ogJuY z3Lxu(1VP;KAh`GKm^?X0f~UCV*)Nf5F(3GKr=#9qzp;L29U)FF98>T4&VoHZ|-ho>^FRq4ws;uOVa=V002ovPDHLk FV1kR43LgLf diff --git a/images/icons/application_cascade.png b/images/icons/application_cascade.png deleted file mode 100755 index da5c622eaca0deb4866135926af1d2aa5101d106..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcmV+n0`vWeP)}lwk9A2Ze|&iZoIgAZ3MTi0rviU@eS5?r z4KA#JuLrmglUjU7y&F^VIw}$Rg3uR)V-k9U&=-WhAoK;n1)+F@6(FfbKq!_YoYN6- z@oomdg%KbsI|VMR`^0v};X*@SkkbJdKbzvy#h(jwfiBRE_p0E=F98r%Yr~OBPWzsj6v!X?6(f7#B3EJn O0000hj32+Ia2PFSwHp_;8^u8>r6{e*krHy43#H^jT&z}Wa&xpokqZtA zFR&Fehhe_gp*x{i&XLj%HzdqAeQvxDT1Rjn;gaWw} z5^~2QShuR2o0yn9fA7Y?Xzt(DKhn`?rmhAn(VT1h2r!!4rBZw52P-vSDzPZb#g$`y ztkj8XEoxZ`Y73PkKp{LJ5D~&7@Je_kT)~2i-c6l&IJJyK&5~gfN`_2W7%3TM2{XqE zQA8qFq861?%N|ZG0Wt%FLJ$TKq7Wo2$Odl0Q&0;JYFQzcn1MtBWCjLiAQxdE1Cmih zK`p|mAf*(48Y1z>=gVSoY2jATaZ?l66O4$*k`47+`l zweRoK+p__ghH^x(%m8DN8Gl-sYSGx#3kS}zEMMMC5wqj&noaWd37uvw=_X01NGD-Z+i^1;8t2&z(w`{C(PM?|mR`Ky`;pI zld+0ZK^TRQ&AxX;a%I->Ls?9Vv(;_9E)=9HE>13WHNsnHAS>LKQkMbVH_QE8X!1!(q^p{6+N_ X4^=JUQP|Z100000NkvXXu0mjfgEH)N diff --git a/images/icons/application_form.png b/images/icons/application_form.png deleted file mode 100755 index 807b862cfc087b70dcdd971af3ac92688484e998..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 467 zcmV;^0WAKBP)4nWfMy23V#h*$3p-!?D%AI~T5+JJ;5Qi)|`;Y?)XOj2U`VS70o zp1%L~Y4f1;U-b7MEOk38OU$EtImvzCpiEkKCg)@3^{;h@nc_6NuOBn7?ZF9Ev4w3+ zWiSxI_v2&k@_b{1R8kdeGLx;rFK&F@c}mqZ4YwJO$7q^VC6&nL^Y#-6g9F*zM-oa= z70W0^1X#=%!t{DQE-wCJ^Pd1r08&yFDUlL$EtoM3e+;?Hv-Nc(QI%=il9}v$`OS^N z)(TbAG~DLw><`m+N>!Xf5_@kR0j83~eKLh5sv-%=fC#``TU}jaG#UW`VS>Ph2!jLJ zROR&N$x3B;J002ov JPDHLkV1im=zqcA1hmXWM zDZ#H?v3PJ5$Hq5OmbDN{wJ%9%wAR zT-Qu9!vIN`896F;t~rD&@Nfe0`Nv1rEgogE>hi36i1p_V%rE6ZqX5JdGmz-z3Rm#{ z+Z*c0z*?bg!mefM79{Zs`zK3~u)rkEuD#mHG}dlY@$@R6?<^o~D%1C9AK Udps;mZ~y=R07*qoM6N<$f`qvmMgRZ+ diff --git a/images/icons/application_side_list.png b/images/icons/application_side_list.png deleted file mode 100755 index 248eaf1ac1473e89184b1b037f7c077ba76ad99f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 510 zcmV*ZfP_n!43{GpZid`(Gfd*b z+4f|A|KP#fXDi!vur$~@v#^*iE^r!)CllKOw(F$zJUKk(w0^dp2@hX=@qc;r`m6uX z-6!w8M|BrryaywFplKS0!y!|L$G@=7vCc6UjX9SuoyTN^iaTLvncg*K)lx~xNX042 z)XoX&j8IKR81KRLAMa?}meFX$RLPK2p(e28SQbGhLUlP|XPMp&W|ag=;0efyqC$|2 zP$eTQy?}e^B~8P~Akh zvI%SFo^y0`#Ky)3Q#mDqfRYj}5nLivNrX@9^wyYFQX&-oDup0-LOuBQeRsUsuE-3T zFf$}!ZOg64pOHH*!_AQkmyig%^pd+XkIbBY0|KZP(ksAG%K!iX07*qoM6N<$g5MkB AmjD0& diff --git a/images/icons/application_side_tree.png b/images/icons/application_side_tree.png deleted file mode 100755 index f04a52b3dfb8dabf3491ec7e052ed1a5f7dedcc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 483 zcmV<90UZ8`P)pN_*poPV}fK3`pE3vW?6l<|D5Xc({VhY=BuCHMV1+hrG zRkDirp7VD{3|xW)!hTy z&t80bcW_)5_ZLUq{><*|a}%?RjUNHWWi!Y&>vL}E=OCkb`Tnc^=hcUAy3Ug~pS4Ai zf@ZZ^(RCfQR;JeHzwlA`C|tpB7x(Vo!oz6_5>3~2)LOZ!duS=Ly?fM?8MH^Wx#7jrYe3uiJoxB~poHWZ_I?<4jWG_RV^Fa4>!S z<-_K7zwuyW>&Du8xwFPqte-A&3)t=#)n##f!d0DB7glf)6EYsY(dy7=k^w=~}g0OK393~W$5=0atlITpQLO+;BL(=rAq$z+S zAfPiSKr)@7L`NTxVX}xuDVk!L(P+eEGGTXThuP5)d*d;)>4filyUeE(_P_2jn@{+$ z|C!(OIit}CDY@|K(@!^pEn^)+ETDcHG z0Jez;%!*B6r4%|KZAzGCr~^&!6io-1l?bqDB7#c-x(F=MSfc4AaVdacC4&ET{L^(b zvT6G1ufy^4k9AX-C`D!>iL4b#$i_;XMi!QkXvVCBZLXtmO@9G#_%iGj4i?)00000< KMNUMnLSTX;N$uzW diff --git a/images/icons/application_tile_horizontal.png b/images/icons/application_tile_horizontal.png deleted file mode 100755 index 8a1191c389aafecbb9493f14f13de25e34f36f71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 432 zcmV;h0Z;ykP)~HSm3sN|U6QrN-pa}fa=>kAy*54Rm aM*ISgWgjfIBP3%00000 zld)=4K@^6+dv{}4Y=qQeVU@}tM6j^36YGGDjg6qBwU$%~R)ORVZ1Ms&K0^u{3%3Y@ zASi3DyPIt8obw-xdy|`4NnAWIGt8O8$DIG4DI$UwJ0D*?ez>}QJd2wWgoGrLH>*j= z98)mhgioKpzkdJr=^j8I;L-Z(Zf|K&t}H=B5I{sb07Vc1ist;z*mi*qFilZT>JuWO zErKAB$a3eP@ytuw=mWR~n@?`DXuN!PLcxWsZyk?Al4tUtK7 z)>|I1a-*~AvhwpT{I2S?3@|=ZS8@}JuPPh5A@f!oKT{}$MV-7EUD=C(AAx)Hk^e2H4jA zqMp?=kuw0+)g#_`oi1?9<#Nbovq&bBC~8$C5(!-9btsAgS(XtFhdHm)k*NX1z-X03 zG8Gg^r3&tfI)C33bX?!-xX71rcB|p^M&taBv7`Z@X|tuRJjYBXgH$SoSS-eXXf(HUrW$71hbZ=gB zq@LsPI6|Qi1A@UI?nO&JpATNI7aos?^V)2(0Wi;h=Z$iuigL{bsi-}bDj<2`f<&uj zXu|-!oBL`^RX*oPy+3+`7O%$BV#=F5s5ZNTR%-+=hQq>kNSrJ|)Q}_wH2fMH1v~(6Q9)T8`;*=P O0000zJNu3H-P zO&@UpeyZQXi7jKe-Hk?r-sue;aDce_XqkvXP+W#F_*ot`jB?BS93Uw71|U^ZjLH`yP%FO7U<6!nLCG} z$SDlWwtp^MwsrC67-bFzu!t;6Q^%|k2MJ$kfh*aj@vhNOIJ zWFxBVQIH79u!vw98!Ll~y$OKnm}QK5wtxPNU<+B6{mDR{T_7M%l&baHE>bEbHX04+ zn+OzZ0e^b{APT{9E#RmJ5)l*`)B%#z1i)YIM#v1#3=Jvuyn6YS$$CoGDq?9U@APAh~ZOF>jp#TVKsZ^rDVDQJO z=z(unDix`Pp@6(DbUGbswOaq~fE^0}P{J^D(r7fOTCGyOUUzmBMUy*UwAN0eHX3ch z0VGKh>h*fm?RK3*p0=MB(nc}0O&K6sv)ObGuro)jd=1C!>krB`s44?r3Yg)uiG7!8OBL$a-Fo@&0(0LjNH2#KGJZi@q2YVKu xMc5!EfO4vTMwnf`nA&W_@!!aPwbiWO`5Vn?>V~$MffN7$002ovPDHLkV1l0g-PQmA diff --git a/images/icons/arrow_branch.png b/images/icons/arrow_branch.png deleted file mode 100755 index 7542db1d1a57f9f3ccc6d5d4dc82ddada796e67f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 582 zcmV-M0=fN(P)8HN)#RH5YnYUGP-mK>R8bw z2t8C_N?y`%B@?pVvm%P1(=O${na{Vw7Aotm+uS~f8Ro~wbIxHo`d;S7O>X_I!*}m4(;rQL3lRx0{4$S^45y5Zuub!<^(wd zDg1Ydq7a)PBNSH(^bYo1I&!_cv8F)Tfk3iCfaGzKcdABUEYJ~V4lNs7(L31l-D~h- zlLeyC;Rle^b>Pb0!o4OezZxjWAc9)nJe_NP=QDRgIAC4B#i)@%!f@-iPyu79xm3 z&=Ei~gdfA((>G@?t|CClgk~>+;;$k`$HzXCdi?6@>wW;(eSTM7w8{L??AcXUU@Ta{ zLrZBBKD>>O2Im`9qM4R5P3BW3krlN(mI5Z z(KV^C5HyzvLrS5djW#mEchkd0<@IzkP&T zje~)eD;&7qVC!q^K`R)J4I}kERX%bq_9+7Zgt9nQ1hjexG(6abiLr9H+N>B-7 z2>SBph(duFLM%ZMg!96nVfPZi`0RE{To_%f(_e%DKo9^(nOQLYoR{*7@^cGNURr@4 zzkZ(Ce|2}YP~a51^_3ecKqY3A9#W~)94RvZ5Lhx&%iTlGqzqJ)REFGQ7YYk+-h&8H zSWpD2LHy$fOifSwLOD8d@zwpm007W@bKhnf=_J{@wR~IV`r=Zk3O;}Rf{Doq5z1{E zIsfv~>-Wn(Sk20NF7Mj0E;nzqrn&}V6|v_rc**3>7Z)bS{%hr>c-THN=6y>p_+sGG zVAk^%RuiWM004bvt5qlzG?JaJFPIi!hzCPM5F-#u+HVZ3^__nMS%PmCTNb#)A6$`fRObJ%To&)0jhwJW!HLQ-x5e*PvyzTc_5ZRhmwv)SP^< zcmMzYA^8LW002J#EC2ui01yBW000J6z@KnPEE<2U00nd`4p=!;lla>84%4A!QiEiL zx(AB!{WTmXO_>8L5Xu#V$5zg`Vzh6BM_MJaJ|Qz07dHwWO(Gu>DhmJ`GFb*AB?4tX KDL9u|K>$1BSBW?P diff --git a/images/icons/arrow_down.png b/images/icons/arrow_down.png deleted file mode 100755 index 2c4e279377bf348f9cf53894e76bb673ccf067bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 379 zcmV->0fhdEP)RB*?~^j!LKVQ>(O&A{Xr%)RXLn#U zs4LtZ6rCMFY5|B2$)yG$6aaIFPbXFR5;7s zk=srhQ51%Gi+LO^77wV16dAzbG@wAMB7&i`(b(8xDqyU&#ij;pOFf{D;3PUo6_qH7 z@zCD%DY)SY{?6Vev}G>5=v^;XviDy5`&RNV6#!MZ;uAv`-s;%-AVco=6~AW@oV#X; zoCz$&Z(d;jHilq%pcXjuFe4{!G(v;>9DU>S79m;;B2ox|%Nj+MJXx5%p2GUiG!j?S z2%Y&cbj&LR9?=RJ#?#^`7Ar|SI}E|PVW`sPXn8=Gxtzq(^&D1yr10dMQz3B4@Y_lP zuSye$7RF#%H`Lg#dZzwixa6krr|(Pf7aR(KLtwFRkwCIM1ACSQfoTSJFpr@l7akX# z@D=Rv9@rED+g2a?Hy@G7U^9C3eb%8a_?P-$1a5i9WKAS#+qN85)~E=vH{A*SvKG1z z?dVFiLHkbgJ49E`%y@DfW=~%tej1}mHwt<_YB9MVMN|yeVJaZ7Jh>K;f_N^45j&cq zYibm9%abEw2)<1>?5kF^y-^EP;Mg%$3H-V=jgh?XuO0tco$p(rOKHJp92n09(Vu4V zFxf1qxGkd?5d9d=dtu7-P^)33OCji3)S!K#g=w8v*PN>ytji{-6HO9rn%8(HWsOpaN*gR#GpYXhHKL|EB8l4*TSU_vTR+aX-(Oi?S;8XyR2It;Uw(aI)9^S|=&95eX@({k9USGy;sUSUzeJ^< zMds$`SXy48v$4bI@E9?)it=aq5A%!jd|dcIDK=`4J{pRP&HSggJxd`56RH!pk4D8J p8dUC|epvAzhprq*3?{^oguj5GN{z3E7kmH!002ovPDHLkV1kL#`6U1V diff --git a/images/icons/arrow_join.png b/images/icons/arrow_join.png deleted file mode 100755 index a128413d8892dede67a722b755a0e5a241e22cef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 626 zcmV-&0*(ENP)rYsPY01;xw|q+1XP62ZKNNf0i}lORw#-+^ z#eWjGI5)D~*%m(1>5Uva|KRl7dV8+T7A`G}x7k6Q#1cL#?^nclzafIHF=frdfxTM;5eU`G(t3ZL>h zq%#>uD8p~AzniHE4Br`SCb{0b_i(V?*A7x4Yp)<*$j^%sM0Q8xU9lJpTqqXT@nX^1 z5K1V0^Sv}x0%NoVtwF!n4+^nruOj~?pIo^7eBkL7YanOml9_B4qKQB-fL6CVNJ_L8 zqEZAEp`_BgUC2WzPE>s=#feT~Fug%NY5nFelV*aIRi?7UTI#j##>YVQ5trdHV zrk?5RJl6F4@9#+$J4=sdwVkN$IA1&Yba%|k;NFYPEk~=v7Wzgn30`=4M)khJ38y++ z4%f}RHlgcGy+WL9&AzgfRngsN8)lrFaO36mhJ#hBZ!G%%|33o`p!k!8k%7USK?fuc z@)HA_|AE;B9y(I}Czcdd25*_+B*+mpNmoPY(#Zk^1~yj3L#eZ4ba>8r2_Fn$I^?f0 p+3Sqk1isa5w>jF>w0I3;;u08{^j-KgOakQi113$LGS!j68UUX2fQq$gGR5;6H z{Qv(y10{fofkH6I3@AO3$p*x`Nil#0jeqs;pT9Ds7{CaN1)$9r#n~kE{`~pF@bLXZ zhF?E_GyM7i!oL`P0x_8Wj$ni2F7#hzWPxfvDaITYg5=lqDRUe#ScX*(E2x=9XYzD6%FONbQIbA#VsuBq0ij+PPf#`3M zpvPY0@wz6#pQ1M#cCJ4HtBQCgjp?eMD}Ow?B1lUn;`#{$MeS% z{6Rm$gJCR2mS9S5Qr^HNj0iI6M|{5JQ7pJHG!RSBu=Xz)&p=c#F*=4sGKu^2{X2Z< zASEEw`V6Q2&NEMPuTwY#5DA1Cf aOZ5%-nC^v5N+ApY0000%pKpR5(n-OJ3xTo| zzV{Az-rC_Vje#(D=jSF0=P$d$OcdrqWdZ50OISNyhHKXf!jg068_0ZrhDT>{L~4Gy zBdqY8Z{N|1SMT6qEsm9X5`57DGIJ6{tUiU*w*<03GFWKb!_-I5B@^$yqd8xVVYQKh zR0+dTu)vlxgG|$F-~JTf!pHvB;^}=nIGMw(LqWZ0Ajmc)rbZwghz$N6FuFDPw?M3V zxyd6>bK=mgT-5{T&WPHE+aleX_AmP13}~n2@i(LDRmJ8PMrCl_&@?^QbAJr{3Xe7{ zRYXL~lWa_vCNY#Ts)2%lP|*kDnyzJ7?dSAQ`{;tavxCB5aI&_5*@FmdS#$HE!Hso; z?9Gj1PKm*v6<|v1p?jjC$@D`cYYE)_AVDgN3~tc{;W|CxdRiyDU-Jm$-Iy+k=wIpu zaqU^Lc$`4uXdceI71qtpa9aZ_T0~1>NOA<)R1XMW9DzMQjIr$@2E+2ogl@2IS%W^B gtbN=AP4XIk0RxY;jV+3>Hvj+t07*qoM6N<$f-d$A%>V!Z diff --git a/images/icons/arrow_redo.png b/images/icons/arrow_redo.png deleted file mode 100755 index fdc394c7c59b83cc2b876abc41064c75eb365877..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 625 zcmV-%0*?KOP)FZj9*=u@@4&g|7erBn|Ebu&JU%m$={t4j zMA?=F80s{QH%n(hsfF%mohhehBz1^t6ID+NGJzBtYm#sZbA{ZEu?vrT)(Lb!?K~){ zH(Aw`uB}Xq9=*Zczi=_)|A3QuQ}znM~D7~ zjUb95oVKv23l4|e@$lZ*dJFeEA1zqO!B_8JKbXnR;M>>lDE=(2>_dXN zph(~`!iy8(2_#ButL^3%VaH2WCpD^U)OZxp@C)2#hU)y+@T%ZNzJigNk%37 zz-WYJwT%teVfiEI+B*@v4ey@58(ld4VY_&5-ox`e@AKg+0U-I`y79bmuw_~y6+4rZ zBG5EdFDS+@M0OSE`>d7SUDOzKZ&h*4eB1iX7tOd9RiYtW2mQ--bUahxr1`i{RG@dM zL#}_X=DDO1{;UI$pFu=dLYT_=5d8WC-sLfjr7UO-HKMAwa=!>)kEhvuwre zuW3yF@ZxFCkI*+ad|5kOX%5zu8IQjhan)UqgSrFGA_0nQFn@Z08DSEUToCSz4Z1ls z&fDbq$T&7|6iq$_uDI$@q1_kQ@dfqk*0>{SDL6V)94@)ete)j++*>bIc9sj}Y;R1o z#OpH+Yt-^4wfv{nern^iVag8-LrYk6ae86R!cq$1)rW52v1)b7{)|O}AG6Uw?DO|Ft)k{$F)%(f{RF=l?I+ zlJnnhy4xL`1{54hojLt{-~Wv_SN(53T=hS3efa;Fl|lb2w&(vZ*_{2~XR7ONye`Pu zoA?0e-~T}W{*PZ9b_gaOFw5hT_Y~(tZoT$Qj_p>QLT-Dpnng!_d8sIiCa_~9WpM}{jZm=`Cltb^#NWN0R6i=Yh}{^)FrY1 zts6}Ln^hV9kC-0#zxPDb|Kx?y|5Z~IXW}#f=--za%M<=jKim6%%IU8E6Hm4O?>pJ@ zzvo2be~`FJvceg~cv%O$F0gC1*cmrB?0?kE;Q#uCTK~1P)&8reDgReaQaGRxhpHK8 wAOih+0O;RKWM?MbJPl^eOx0CX$&G|C05z+&w|oy)!1^@s6 diff --git a/images/icons/arrow_right.gif b/images/icons/arrow_right.gif deleted file mode 100644 index 995af25f3abd23001d6d87a21ce92c0f79ab68ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 307 zcmZ?wbhEHb6krfwxN6E!ay-L-rhC%H2+xU*VGDgTcEslHON?0=TzELuwZne$>F(7x z7R@?8x#>`C%i+4ESLcLv1}FB#ue`qC;)4sm4cdZusgg((dOtA73d6+1Kh|Ns9Cc!AOZlhXlBmb8BPMd91IFPtOpwfBtp#ADK=~gDAnV+p?x@Wfr3-ZlZBmYMdT+t jhY3}-L`20fYwB={DT??AD@z2J3L5uMo-)o>#A+qW*AYQLZl(!&BX$x7Ik;qO170ssEM z@$bKXf%rGW?|(r27bf-TSv zD}TdX0CM*JhkLO)8|Y^+n~Q^sK~hqR;q|N647YFGy>NTZJsWr!5CaSfwJm@a><8NX v2&h?|*nn(6-Ko08>y5Bipj zFuyiPrdN8pDqvvkw%oSbD|$YUB3aMBizpn!0@bH?0kAfUJ+m=Vt{!e1UD z_AQ7AnZ&Yq3oU^QbQ$1o#v~>3AqYSCl3VwJuGp2*ve%Mr?A16`oZg&5Nc6*_Q~a<`f+n=r+3NUh>M=H*cV_-chG}N7Vspn9Y`Se z0C&>eX!bRrM=;=eq7!GFC$R4w=n|A@e`7&l%LDhi6W$FLp7k-fKe@oJG0^dCs2ftC zB0v*S$*EwIXr4EM`7n&hl5iB`A4lL?b)cQ2aNKqjRZp2DO_QVx^`6pHR5;7E zlj%-cQ51!F4&J~xM61?D4NeiKN{NVy6X-Qqxk8=MfEX_jL}^8BK|~N7FhJC_i5-lo zIHJodz)CX1Y{)@S~!d8q1l+bMV!}{YL?7wC( z%edaW=F&F+ z($9?`K8YY%uR)_%0MQCxd3ndPa;Y~P?U+0ni$XZM7r6Hug|3%ZMP*Zkl*~_HJgCLk zA%$#B#@zrWY4GPt5fc}9icOq|ZdVP>t`f>G-FQBfO2-8VoE7L?C-B-QL8&<(Elc$< z9F9VNpaHd~Mzw{9XMM@!tpI_e9I`cn>D7RVpdQ8}3WkFbsCW7qu?h_iA<}x2LUHGS zH_L_8E5^i;Hs-n?bM4!dqv}ItRGh3xVBa~)+_!mXcGsfbDMZdlCbCp%NFPW!OYKP{ oAG`}3ZPvAA3WJ2dfsV78ToP)wU4~UJxT^#Yl8pW;T)B2y+W_BqqmW z&#t|w0SE!KR$a#7aL!?!V{G>0(f7&GF0n$i_yAiovkXpE$M|c8KDe}2*w(W8jK3Y2*x)V03j=u2XF48q6F<0_UD&z zFmi~T?K=p$491faq~>RsPR$VB89_xzOpK2V+=|x$1lD3~x!;g2Mz5ELE831k>xd528II@{FM*4t5cwMI2$KMmfFm;RN43xW+e;$tzEyd|PV<@i4gUfKh|U-I$hymfQ} zt?kWDj37pE;wZ>1WHG%+SvbnRqEaTN#u*-slSm{u7_C6WGBh|el4$>24G=QE;Y9f< z)G2BOvC3T5Jn;{4ig%R|E{ITA5W$|ds8uW$Z^f(HeLnnp>dACn(D>^wEGjH6Et2~F zjpx1H%%|rOCx{iqDPk27MT{DNK*OCgPK;oDLHt!jVx&(zZS&Lq>Ld9Y&Ck!LvbvJw zmn1{|Z(}o^vo(KE_?L8-a>7*bay4g1#tO$)YSGB-# z09u8rA}2Xye`S%*{zU3D^_fPdmiyPg-%=noKoSatC_xfp1wO}z@<18F!7w5ZBTtQy zk>Q?#Vu_u^$z|>m7x@d+R@cH9d2;6$#K=oAGXHn~_+m9`^0Ksl zybr&x6m>QAki2vjRQTUKo@})pZ5^O0;;V6NP3$@V;4k*yCND4)s8xvJbzU?;j6jsI zmJlOe00i|<1M%2^mY^!=O@UVms-Tw!6e7N`0#c#W>-;y{_WlDAEgOIU0000T|{kC~{~#l_0}%A4(11APN%oTu?? z=X074W`VoO1edlFk(}Pe+k{l13cG z@Zg{ebmFvrg4(aE)ymt0PXG|#hrbo`l9pd&CJJNeG5oRLh@uE|LN0g+kPAk_jD!Dj z_W)6I$xu?r4rM_XOv2giIes?kpb5$I1f+0vQ(N0DRX_d*AT>Qam_gH;poF6zhu1W2 zZM?3O0ATjZ%VV0p@0F|Xy0#$W%*eA545VUQHZIT}1^_dzn{lzTg$Dx@C_=$eZ`855 zuv2PZ+%F%lcB{7yKrj%JgDv*_6XP~T7zIHv>jS`+?hIW08PEt5;h|3hYY}w9A7ik8 fw0GAAdk6dl5~BQt8lE;000000NkvXXu0mjf^Ze9L diff --git a/images/icons/arrow_undo.png b/images/icons/arrow_undo.png deleted file mode 100755 index 6972c5e5946080ca1dec4de09d9430d3edf6c555..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 631 zcmV--0*L*IP)`NY~_X_4^RN+9OmbDu*=G*+_}E z3jR}&gbG0=R0#?Z-=09KI|YP8=#E5@+>uO|=1VUCOole%Li*0J2^Gy8+;b?&km6gg zf;aDGp1r#I_V|We$e$~WifFF9R7MCMwsmwsME9<<@yx?a+v)qKuKbNe>k1{IrVt}k zbbSs~bXr8Se}V_b4opa0GhLA`RHceaP=N}IElbSa8@d(ij1Q|4CvOirm9NRD!{BW1)On zF%c;G<8dCT1^EYaG<54A*NR)UOLedaSA;I2XP249TIT`D>nggGd4Q_aTg;b J9&uzr06Pmui*^72 diff --git a/images/icons/arrow_up.png b/images/icons/arrow_up.png deleted file mode 100755 index 1ebb193243780b8eb1919a51ef27c2a0d36ccec2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372 zcmV-)0gL{LP)6w#wHUuW*nL5>vZR zlg{G&%mT~|kL3ei%GW0*UOHUMs5XI$4uxe-L?I@SAefq*207}Iqtjm#e5*fP53AiC z)C|RQfwzxx<#_WfANRGZx{+tFDl8~Q?;~Ve=lM^*8UTTnVL?HTDz8uta0D@d28E9S z_)i8aLz^UE6PPKymi;2GJ`34{eIia-CtfAt0H61rk0 SPTNud0000*uQQn7Ao3L@HcVN_JG5Oz^iELqtfic#8+p{{13 zB!rfdf2k)SDwJS|D58iKOKXwBFIFGcC-AUOfLS9bv(H0S%=6T$O9SC=2fMD%gnJC9? z!Kh(gvt=Cx?1R~s3W9x8mCUENrT{!2(+x==*z->Z(e<;6aicYvPErVhHT_;HRWCrO zX>Ant#Yi-31=*-(@?ZTrNtR{}?1a^q3-ss0eBi>@Qc)edAUbFFjhvR`kHwNKL}lr> zmx4@#VC|1-HQcog=-UoF%!Jv#1q7>sa}xhtBKb#7NeGlV;rH6OFmr?PNPiwMRD=jG zfZ3f5vy;Gqe4sZI=uW3=7L4|E%(QHx)3_-#2chPTcz1*X$TTNe2v#yoR){KnCQhcg z(YBd3W>A0&#{D#mmPqQSlM)|3A^ATXx8dz!8(tOJd5pyIa?we$G^;NU;SSgD5WO`G z1giu)7o5cCBA8D%u7}Z)i7#g)f3PVT=*fasvkLEz*?bEIkm>TthSk)+f{EIdAk!W) z?VGx_0qAlea5(`l58AzP0|-{W*Cx;y=hMVxgG_4#JISQPBo@rv^)uedmP%+LWdH!1u~sTvRX(MC)0C( q-3yOhdA{Gl2X{NXPYNCLME(Md?VydvM~!0u0000?P)rx$R<IWI`!e`47o+X|cM zhswMI)6H-!+|Ry*GtmT2KZBZTgf*vuh@Iv~E3-o`X2T^+DyW5TGfmLUU@4QG+c^0c z#zg&+`J#c@0((YV&ur`*Iawk7JMET#>EkfEJtz9cD4oNF6e!0Aw?I&|=qKwHAy9XoQ zA^YBJr@&gw)O7(`yrYQGx{Yirh2eMScnk9(q^&}_PQ*$`FTOgh0*()5P;Djfw78dp Z{0&Uoz&aZx@__&V002ovPDHLkV1iM?Q(XW6 diff --git a/images/icons/attach.png b/images/icons/attach.png deleted file mode 100755 index ea897cc9f18ca49aa0f30bad4e6b67e4afc7f498..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 391 zcmV;20eJq2P)`oHYyCmI1nr3DC<^9@PyNudrDc9~P$75b!T6T2tv<*K=EzTZ+r6P_ zRz+%oP};s~_x>mm z0pQ)E-O{|Rir?=|;*4Oe!&-;44r3gf)-Iu~;|c?9A1D^Up9`F|I42nWf1;W7*36nQ zf;E<>;mrl})wIO~mSnh(rWZa#2NtdEEaCGAoUuGEYF=CvMF*C~(sQg&{KX2n%}a}8 zOciIa_PHI{);|Uxur%sZTk(iBku+YSk$2)hv%D-q|J4zkv8~S}=sv#n$c;b8Tl>=) z-YmU{U%3OXd?U497niTyWAILy_At!M7x2Apj>MrbEUAGs! z2*LgDY3~W0-&vFXRK&wM!Rq38<&LrY0BYvaiV-PIt`q?gL7d=KY=+X85uHPH9zBu9 z7RL}2PHTd~U4qGM(<>iJyKg2kEiRMk2-UR2{gu0rAcG5XIGqJs1my@XYarq;!Wm6| z;5%{y*&m2<7C?yz`F2(1ES-^c+p9yX-baE5husHL>x|gN$EFoidu&lgFg_;qBqAn^eBg zmrfDE=lozB5#`f+?N@-W=9l=-*J{u77@tgMX{kLa7Z#4ze?Tq%=1F}hk fKwICJqlf+jPqmTX#t3U(00000NkvXXu0mjfGA@$z diff --git a/images/icons/award_star_bronze_1.png b/images/icons/award_star_bronze_1.png deleted file mode 100755 index 658c7117bb8c5f7f6127b82725880898c3d7fbb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 733 zcmV<30wVp1P)5#ZOj$V zV$6R8et`Hsp^Y06t?}x?-BN{Jo+A{GLpF=}{yzmtYh)C=wic&;1MX^#S<^tIK8mw$ z9j5mS;s?n^1>U{8t&EN(863h(*qFLQ=;hn-R;7@>ex(0vvZCi*>q5p75xCt@M#zpM z*Z|q?@X7EteIjT$hYlRP@ApxiZy$PlmbH;D0hOKL_{*WZ;MR^|Dic+L1tK5@y>d4> zXDufE6I)H=Wxil#C-axq0i?$W%}gE53ocb3M9Ce~cq*pr4r68}P%}Rp!|ZI1=W3eKQ{(8&6eg2G=4KE}@YE!+_s=wG z)yj?Wi=|CWjtmfUw}tvT?>o~yi1Cr^9Fogm)I5&s5bN!p#FzaA_^&C@GMJ`fX;)}= z5K#fB0E~v<&l+~pTpQ_Hbc_JlkpsFSk>9$Ch@B!-R)IDix^hJgZHdi`3)**;A=W+} zt0nUFG38I&2bR2ge6xJwHJ&|-TDl&zbzpIUHhXn+ZJGP%0^v7ruA^itSBHu$h4w+w z&L~mIqJj#PGAqhVOEX1tY{nVK(RuHFv=}WVrUQp_xcB^j9L~Ad&|0%#r=L{ogPY3f z4!uHZg;a9h6+#J0a`(`5{}%0Mo*4@oH;YU-0;QA1Qb~kT^YO3Swpc8|wFF=bv<62? zY$@0n33K%OS8VAZ?>YLSi`>qj&9`d&Y*T9wm4vIN9j zkP|P4lYpD0Bjgn4X$;UBv_dZ5O~RdzicMmQDXe%u##|`bv~(aghASFAo&;Q6a|ogD zsQtBmS$G5$4I-kGsOcaoK83aupcO`1Iwk`5hZekp0}sgXR2hFB(%HO16fJ6JWl^G_ z5*Z#x#>1$11U(Z)8yZW5@V|X5iHUle#xE=#VqkOtzh{T*b9=LU>LXg&=(!nmB90QX zxIJ$Cy-!2fx_m+W&lac~ijkew;hG*o3kQS)N`f;V)7&wxjdrA5BLJqiLS`2yQ;)!F zMsWGEk;+2mEGwX)cx!4v<1QcCI3WFN@qTL~^HJkK`pdQ(nZZsha~hGg4x~|$8X(m^ znUU}Fw4NiatLr*KZ{zAnwP$R&Jfo*|RL{EdFGe#L4Mh%X#Cm!=lt?e lJ9R~yy?yVmASqoe`3;e&U@M_8ssaE2002ovPDHLkV1gayPXYh{ diff --git a/images/icons/award_star_bronze_3.png b/images/icons/award_star_bronze_3.png deleted file mode 100755 index 396e4b3a2583924c56773430b5f2a5de992bb696..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 754 zcmVD`bm3d zGTu>FRh`dR#u#|GJA}tuhQSMPp)+>o{OWh73pXD}T${kJM?CzXpH!75YRGK?HI?Gz zo8Fw@!L~jYmlqicA7i=FXk;H0N!9s3d(aspCafT z#S#=yNti3b k7t7WKJKJs|Y|BUf0tz8#4)XPX9{>OV07*qoM6N<$fPbrirq-~0P{ulMSj*I8(*O_yaV*n;RGqTmwM3Zg;V@I^LajC_gJLk|%viB%8v zXb`=WSiKo*!O$dgOXnuF?pAZ*qAgv&dGGaluiN$B-}ley!894P1BY{7&gcABA_Bm( z?~coX7h0LTvWPQ+wGL|?&N_^7JbvF6`Uihvy8k7`2JzP%XD!YNM*kaVR;@LwYK&lw z z6|B8&1-9?(`Rg>qd^(dwc0|)e>Qg*bJIY-(QKo*L!x`K6zku-%b{)C!d!}zH9q?%4 zd;F$7MCu-+Gcv-Nb5}TjDd@X6xc|tl02Q9v78mi_#EItw-ukiU(4npq2e)+{gh-U| z>Q@Y$^uF2Gk$y)cf^&k^rA*VFg{uInGS)aJiT14`AR>qpBFQHpu^rKQL>JJxG`6&W zpm16fF8@imnC)qKMFxD63wm7;40;{Cwf@#_Bn)t29;dTlOQ0N8ckU$WZ^9W(VfqX5 z)7fLh7y?itLSaC)I?M6sgS*?jdtOAs>xj9DxDsMlKzRh;O%wd^3zem^SWo7F{-=k{ z`)chH^Ixi32cO3udSkbW)#FSau_bV2GL!QxU&``8YA>;tPFB*x{C0B0=4UP*Uf)8p zTW+X$&4@0{A_@?PLV;NR8lB|+)LyDDkD)&6Ch^A*&D*zlqU5l@aV0|a^Hs^6DCOgf zK`&h++R%*77O8G*f#+WP?+4y)!gH#59grJph&v(W)pbxf^C7v3iCGky4lN>GQid~*jzV&2Y;Nxe8 b&C!1V<3gG|1vXA400000NkvXXu0mjfBS@ei diff --git a/images/icons/award_star_gold_1.png b/images/icons/award_star_gold_1.png deleted file mode 100755 index 97a22b72eea2e8d65655993c68a9e03f6a40aa9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 753 zcmVPWf;dl@9%f?!cp_eSg3A+l4!Fq^t+ti}&IAe0X@D=QWZj zM%;Z?uCWO_G=wDZ9(j)>jD55+NwV|jvC>tN3^K{^fV>&V*w6!et5~&pa*WZwJy*mn$*RS=E{iBzuX~I|52pZlZsC^BkvS{J~dNA2rd+&Bn zDPttzeo9qHVOn0H7x@0?K2+P{2W3YuKv0gI{t`DZ{% z^)uSl+#vB}3L>aG4!cswJw`5%TN)=W%p(lmIqdQjHn;eWkwjs@obZk>!UG>wB^pj6 zJBPQA@h%5(0Th8rU=r2%$dMnrMsDoxS0p)Oii?!LYWDh=q4NEw(&6(bk$r@sRpbjO zUIP;n<+9A(?2qj-J%=u`3F{W-TmM-l$V z6zWcE#Z*)dyL<*2KpukuZ7vZZD=nXBc*ijUh^IQs>R!T_1d1YTE{iGKO;BD#`7_Tp z-nnR6O6#}%g{8r#E4*kAYY&kBcxtMq4O+!H+m&<9B%$t@BKNE>6je&Y}T$>)>rA=-mG16ocaoM?$_R#KKptL1a;2QYaEZL?ZqH!+`{1Z+cmQ zQ1}3XixLgQQmBz(W@=0D%tV*%@ux?(vz_nL)r+<|qt*=^_D2k+IGc>M2?jCYw+~gHPWej16&S4+k!e$e1 z8c9@6m=~ktaJufDrrfG+$c_;0J)+AXR6rg~4wG9-^p5hyBV-q^eLX8w@MpP7yr zI9b1TYcYNFC1gjDpGL8Q!VH)cpWS8T^zmRH(%bc+_AeM>^BXFW=c(D>`upR9L6DHD zC{{rhL(1sa$1_)@d!GESEwpUYlqoDZ*YYIB z@KEmIZ1sp^{p%0ukJJJYwH*M!esx7LKIulW$P&a@Bxzp10@XKE-7~GSi1H( z@@-F$4UO~wSO2qv5d5>I>G8t&$-Ru98~DgOHgvwPo%gSox^JHNWdP)CrU4o&u6xvM} zE>!43A_c(|D^&=#^_8j(DoK2_jE_hv6Jy4XCZqY^$FGYRnNZ?^!{r{%_q&I4&NY&l zv&~qvd5Z(RR~bC;k(pzXlvwbd5QMWYK{tDPH|x#` z?|dmjqV)3WHS2M)r?Ko39dCYxjXl=-S;5x{1m~G9T9#F%v9YJM{3q7c-eIY3^LBNH zsp1UYzqSJ3^XKq5i_=M(Yo4+?HAJGel}(jrSW=PV^0hI7^F0d+ocpG&d*ttlp36fy z)|dZAvTi$xMeoy`=;zAyQHKA@_1x<1>@H=DB<#gi87XQ|P!t4TTB& zq=+B<$dU8W&pVoi_DKms5Z)Fi>b5_6U?dTrts7H$<8lckp&$}9A3*skWS<~gz)lX~ zi;ob7U@h^p`^5Rj9Yzwx<7P{+^hQmeRwkG4L~)J~KOxvW_#()GNn(;!1ZOD>9wk3G za)LCw%-kXsj+px3Ihk6stsz>m6~*JoO`}jm{yCTkmw!m^)G;4Fqr2sM?Vs1g>W`Hr z&AJ!&`uf7tn;;?0pfCf9F+`02dMs~eXq$uoH-(y=nlhP+ep|>Q11MlHAdfNC6e;g@aPD2@LIrTdYx{lty>00000 LNkvXXu0mjfmic>9 diff --git a/images/icons/award_star_silver_1.png b/images/icons/award_star_silver_1.png deleted file mode 100755 index 028a54626a0aac09911d57f4fb475098f5a76361..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 714 zcmV;*0yX`KP)fArj&{$f(hg~Pe`ob!G6yckK6Kt94NpER>OV46q( zwTmK1MDR|u>fiw2+jr1@{ldr?4i=8Y^YdUCI46;brn5x|u-6D?{1reDs0=nX;Qa7# z{-z|i5};F>PJvxtr+|jr4WpeM7@ADLx?BL`G4|P6su+9mLZTNX2qk_wz?^5yOziHWLHFBXekkbc}G;BKUEEtks` w1RezffuwAYL?TI_&v!4KPQSq&*j~i^1*0~MIoPHs^#A|>07*qoM6N<$f=#+TMF0Q* diff --git a/images/icons/award_star_silver_2.png b/images/icons/award_star_silver_2.png deleted file mode 100755 index e487c3a19e6de398863e819239a594bf033c3547..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 734 zcmV<40wMj0P)lhS)MHDPD zN^nu$NDZ3R#lmf9$bw~4(f#`U_MX!ux3B{*@A=OAJkR%@=RJa980fCp+X>@(D2jzf z0h*yh)3v?Oq3S9wxGv$ri$}=bc`tN17W6DtQK1`uz>KKs`d}@Mb?m_ z5l~a%)+B`G%d}UZYJ0Vg(qBL!0TG8Fnye(EVnhxhU+6ij>+NHIku3s^xm+&ZvfXaS?(Qx(lHG8@j>qE@ zrBW%HPN#n`KMo354zw?o%jF6YC#R>Uv)%JlDwU1JVkhV3=I+rOxY*124Ljn86uv6q Qr~m)}07*qoM6N<$g31I`ng9R* diff --git a/images/icons/award_star_silver_3.png b/images/icons/award_star_silver_3.png deleted file mode 100755 index 1d72d47247ceaddb46f918d53ec4444d633912f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 738 zcmV<80v-K{P)Y)`XtzyIql2{sy6=Hu9+tjql+xOzk)<~?R3&ZZt%=gXAx2x3abu`xKgN6FU ztvTdqR_-fsPsm+$v5g2F{&wVy{xABFA=M z>Tg$mz@w??JKYAiqlT`oE)2OXoN={bDZS1`^p*q*kAjg;*-d@vV*wYO2F~{MptG|R zZl#Q+58tqoDd?Z$cO%UhgO)<#mU{;p6#;L>jklv)NFsR-vjYHa0e}wY9}S8QZ(dwW|Fum-# zX2Z$8|*3m`ciVNwH*EI!K4;uvAKH6fHzx?V&@^We*)X?7dsir9(vp z8s0qC66hg_FvDdP+YZ*QQXq*asiJ^PAt__udR03JSKMNpvg7nRd;*rSO>RS?^_43zGp9!-$Vr8Z;-c)wwgHkS+YjrxEH>PP4=o*Ja%j@-qQ7nuXR|G+z`F#G__zp#^)oN!YNg~y1 z^~|0zhm_4`@5r+3Xt&!}L!nR@MFO-?D2!7|UpJf0T_|9HeV`8KcGd}Kc-Emip&y|t z_#%p8-7t&=E*g!lG#ZU>nBYAEj>EBt4o4jhM;RJ-I-N_<7<3u_xS}Xbk7%04w(w;0 zJ9vZz;{qIPf*|w*bT@RBO#o`l2JF2T=VSmKyFa;k3+QnBw+YIugUjVAvW{-In@tq= zcswQ8$Dl7zB!&WY@O=0src$Xc9HR*Gv(tqJp|8MRP(`o?-T@Vz_k&BxWbzRI>pqdd zgAD|epI0;lNkiCmw3Y+732PG_{dW-vWnGW?ek+eegcN?|t9z2?7xGKN@MGRD*J^ z&rlky@ZUE!D5>oxB^64H+e}Jso>dhAcXJ|I^4Pu&0hSi(IWgLX71SJg^}9{IANt4a z6@3vO@*Gyvx&UJ2j;g6eXHOcITv{wUTQS>}4p&n=2Fk;r%w^@S*8a(S*4l9Z?xB2q zbEz@ceIA}S32-WSa5Toip*ae*h-LZ>K#V(y+NX@kSg_V%$^H^^#w5(VjmNa^Al#Zr zxKskTv?tM3%<%;PqbiC^j8kOR6?gv~_-2jxYPk=$UI?e|FeaO0Fjl)4b{QYeM$$#= z33NONUJd|;c@3 zEdc1N;!Mt4u3_FH!uuLNdh0_mSQm{kBBv%A#u5&?pX`FYmIHU&F-*wfPx9%`;Lgug8DbunAt zBaI+kWJ7UF0I#(WUwSj4$>*c9h=G}AiU3$-A0$Ax*`Bq(7C5v$WSb3D;V`_ofN@<0 zyyGH_s4k);Wh-=dcVI!ug{|Qbq&Jv@e+2kN0@9!>-iNlrSST`i(3d5k^wJhQO4^KW zF%1@J6soS$C)Ne{CC_FFV2Y&a z4Co4YFjq&xTp5X`tPqr@&_w?P@T)qFu}N};o>QJmcZySJ(R-Md ToJi+(00000NkvXXu0mjf*@atu diff --git a/images/icons/bin.png b/images/icons/bin.png deleted file mode 100755 index ebad933c8b3729a9b27dc34c5a111600b8d46fdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 476 zcmV<20VDp2P)!P6q=I0_iwCeRuEs-nY*ui2wlBo{da&-rimXk_dpOx8l9Y2eXq^TiLre{gv0N zh@vQpp3E(_zQv8WAB*@mevb>S`MD?sAf3NIKIx==eZ#Jr9#7|~0H2e>)YKJ;10yn{ zb~SBXr^1(^@_cc&7(P~SnNU?q95~@CRVtL1isxZE)U%{&!=XelB6GnODxd1btErjO zj_6poZCs)d1RVpU;qKVX8HX|rHyyQURHCLW%8}-eFWR-IYhR*iQ-E&#nFI_$K^_5DwQb0QR_*>mIH#Cqd99N2l)Z|DPKCCbQ(9lp- zvu47Wa~kew3p-R8Jp8%booy=RR$@JQDF}+Z*eRMM5iCB+Uxaqp3-6bf0D%9C#5QQ<|d}62BjvZR2H60wE-&n>*?YcA|c6o&|A+rkb&Vsas2(@ zRZChzd<-rL%s+C)K`AUj&@4exERnTGr7g|ufjFlYo2X-lQc?WBS5|%h$H~-pP=>{CWcO1^&sC zas{(rHNEeVX?R|+D*2koKAT-1TVxuXF7Gt2pCrhe%W27Qah0e`>%4W-qEi^2ys8L$ zkzFy>C52%M!-~#H9Xt(|Evme3 znsTM3@O9jy7lMk63GZ(u8Hac+{l2Nv{)WYyc2KzeV81veQkLz}aZs=_c)I$ztaD0e F0sv?9ij)8V diff --git a/images/icons/bin_empty.png b/images/icons/bin_empty.png deleted file mode 100755 index 375b8bf6a09803b8fcee625fc5f38a949b5a1439..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 475 zcmV<10VMv3P)rCP_(<-a*jb_Hyre&wGyNNooK906+!+3lsI|p?tm?Ex#0xHV4K10Z9#DVK`pc ze*7w-lmAYiqVQ^K;s*qy{gNXl3K__@vT?o(V&K zcsjVVE#qaQIuQ57;gih|+H#dz(D2^m2pQGkc(XiPHv7qxcY;izAvom~vS-bB@7UaK zL)NX}h(uIcx2`~1o@>ob`KK>8W8A9k5@R}Q0cp50?UzkmTM})nYN>`oEg%iMGT-&} z_59V;^#>H9fVBA5b5zGCT|Ep8R4PHGL|Q!gtm(MZas<&1m0H7?fb{C)mF3rRxlv=@ zIH+Z>+^mjrjf~>_+vV_K8L+b&88i{a`h`7P#Ww_cAT-3>7iG?d zKQ=FfJTtdc)9<~|e5oamr>PvpaLsiMK% z)`3JKfz0M{+kjr+tJMf=)!zW)RDC`lVzC%#5o2Rx@Or(N z+pwWr_G0Cy#KMLfiChPqPN$_Y0QGvkUkCxe-;Z!O3?8>yEmSHM!)YC#@*XrA4QQHX z0BF760&r5HP@qa>L#*q%0boI`Rx<$XRMi0R97hX46Bz=Guz(YJks&PLZ=UBdyUk`p zsZ`>ej0K>|afib(q9}^d4OeFfM;4ipp)QvTJ3Bi(j$5}tCq9+UX8HLVTi_P?ApdRO zZnqn4=W;oEbYjW^%*@QBNDxgXlO=9ZRaFCIR%heN3`nQbC8{1JXzH(jfvvZ<_c95_ zgTY{*$Kx^fYu?80?k<*>m$`D3z?1*|Or`|_fk8U72%SNQDjC;Ho*|D@?i7hr`}2PR X#`)v2r!)w#00000NkvXXu0mjfQIK%^ diff --git a/images/icons/book.png b/images/icons/book.png deleted file mode 100755 index b0f4dd7928cc5714e002fd2a6e8f2faac0073f00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 593 zcmV-X0l6k>CGhc0FIuigU9U^L+D`6bSr zIEp(+L4eIgaZT(|{B!*DbrTYc1t0J9*MLJm+n zOEVloE20S^g6s|1rvjjuW1W$TV;&TbK2|slm=91)Q{X{Kg;c!Saglq7xo8`(>{A}G zw@`8gScq(adr(4@;>^%e<~7+uNMv&?8L0#%0yj~@DW&fPImKeyFHkRKuNERO3(SOB z?S)niZbFEN`0<|w+LjBKR#DU7F3d&rQGGY&Y)Fv0w002i=Jm_>x9jBX>wg3XCKK`E f>xbvJ_5i;DeEQXvyE?}U00000NkvXXu0mjfKqCEw diff --git a/images/icons/book_add.png b/images/icons/book_add.png deleted file mode 100755 index e2f084727408f27356022964c059b02017988b05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 714 zcmV;*0yX`KP)>I+w#Eg*+A?cQ*gTsOTO&elT=?-PprnusH^iNrUAVMeNReFOLbFcMel&QL3~P_-NYJIZZM z$*ztjRyCBdoPe6gbXRyJOBUy07*qoM6N<$f)d9;DgXcg diff --git a/images/icons/book_addresses.png b/images/icons/book_addresses.png deleted file mode 100755 index b73419ba82098bbdca1989d31fa798756c987524..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 770 zcmV+d1O5DoP)LHt}U(fC{;>Yum{xmD^Y@B5nN0h99fKm3?`0_{sl~q#>Lf`Xq^mk zkPrtoHo*|Z3nt2x}Jy`Dy+VWv$$5Q(e+JC7mM8^t0(iL(m}3r?Oq>CBlk z+U+S25g-Hs)ayudKxvr*V(ri6%46oq;@1yc0P zA3d#Jwv=Vd%^Q~uhdUw?5#qmljMYF15n(hM*?Rc9vGHS$KYP}#o8KGsA85A5J$?L5 z*MC`7uV)9h3*UUa-*A}z_>9dmBBYe0l)#gR7WI4g9iBg>J=3wbH*kCHJ4ZXOSYQ27 zDru6(55yX)S@&n6~krBum)TC;$e8swaf zMkA1;lB^Q1DT^mw z_wd1AvaF1rQ^f`GXt>pMc(a6@v#P4V>fhgb;ib1-`{@%;>^~y%NUa>Var+02W?K%X zYERjjxIaDC&rwE%l#-mYDhz}(!NW^0=wBZMH5C_+RAIVF!K23~z}<>ANUn_?}3M|H~;_u07*qoM6N<$f@;M1& diff --git a/images/icons/box.png b/images/icons/box.png deleted file mode 100755 index 8443c23eb944cf8ef49c9d13cd496502f46f1885..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 555 zcmV+`0@VG9P)i3lOYrtSl@<#7b-w zf}j{s!5HvocfT|9z82@(O@vrwU^wRt=bd>tXQpGD!`Kvuv@XEI8~tgUP2L`{+*)U@I@ zrVtr5X14??iAF(=0+k>q)v`Scm$9&=i`*knBsnaUVL1>ti*O1xfzmiD$%Md-h*6M( z@*iB)icu3eU424Ok{kp%Y!1dvp%f0`ac9vcupx^$vU0xuKpJcBvej0UYk%)EV>mIx2hV}QRf#LX^Uh(%`7hZ~|KEf#uQ31s002ovPDHLkV1hgQ{`mj^ diff --git a/images/icons/brick.png b/images/icons/brick.png deleted file mode 100755 index 7851cf34c946e5667221e3478668503eb1cd733f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 452 zcmV;#0XzPQP)Pdwe5?6tW?r-ok|b$oDQj8FV%kZPq;(MWOV8?8;<)(iP}>hNMU> z7fbz%jjlr7h8uuoQ~J6}n}@Y@PdTk=)PxO{%7zmL?dchpZX*~n;I{!C>*(8cU;q(~ zAS%Po_@naEU!xidrBXD?;hN|x^%W|Ij)0y*r5vi|?W&Fub(NqJ@z0o=Owd|HNMlZ|>D)M67h? zOIjz3DJbk0=97q(mSBd~-ilc0Oupt^z$#N6O&at_s8u-PL@9M^gQuq(+UH^IB$&*DHP!HzH+vkEzC?S52tN1$mKhziPkOR=y$ zhl#aO1Xly_M?EkN>tM6E5T&Ht4dh{0oQr6Q1b3J=sM^ACOsvD=TSP81#0oTC1v|Df zgpp-GhL(KrE_8t&(jeFR1W%(osQ12tvSpHp_}~HR_8G{VUO;FILQv(P-b)es=)ZlJM#c>{Wx-rgY3D#Ol9rJl39A<60Xo5cneo(9g5a4q>ayzV-7%Ue2}0_ z&TIets{Cl`n(nefrZ+9F8|N&Kp}^StU2b+&pVj;XvgEdBL3Wlp00000NkvXXu0mjf DwZ3{L diff --git a/images/icons/briefcase.png b/images/icons/briefcase.png deleted file mode 100755 index 05c564912953467ae888192196aeca2f6db0a406..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 793 zcmV+!1LpjRP)wCLzo!u5vjB%3bO!v(<`_0eVUfez^@RtZWvFJys zmGdnDZpkw!t9(+21YEn-ihl~B1qBIC$}CuB14>X1 zU~*Un>6SGZ3Y^8*Q&uVSbD7}5T-49a>2vqn$7#MU@h6((L#!%+= zz%VT|T?$}o@{26(rTuQtd|!BWdNe#6g6~WN^yIoCkxFeKNq#aJCqJG$+l06391?5G z7z>TBP=XG7ma%A``8El+=7!znQNd|bAZ=Jk8A7QPMip0;lwx{5q%cngmVeuX$bNi! zqrCTYUHx_Eeh+kB0G;YJRksPqvt2K8IKWmHFg!IfMBoOAQ&Z@^bIi5NVcR<~{)uxg zY|Ik&{88-~C*A1W?HJn{l#TYlO?I~A&~eSM?)n~-RV0se6$@AD0E_GXV`XdVUHN0T~Y^HSDgA^X!&oW$jpM5h9)mbXmSy~HD zw(w^mE;n9P!K0&YL?RJfsH;OT7({E!J;dI5QDC=imt=c(^T;}l=)l&CLvanNo7&*_ z`=M!?3Q8mr7#tkL(Cg>WG9ie(_q)AF`O?+Z)u!uu3$ZvUnUEhN9WYI^y}!Rdoge!L XLaEPO;P?1x00000NkvXXu0mjfUe98= diff --git a/images/icons/bug.png b/images/icons/bug.png deleted file mode 100755 index 2d5fb90ec6ee08f53947e0266a87b03f75893446..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 774 zcmV+h1Nr=kP) zlgUq0Q544c8(ae&UR$8ps&snq6^bPY3v3xAmMW74Di$h~GCH6E3TaYs2#6A<7K*gC z777H71_Wa;(dfp+g-drPCSWu)#PInZi72LJ;o?i~$-U=y&UbQ89Dul3%3P+Axkzc* zbH-y;QF=hR{qLItf%ci2_&e5wNo0gnVatG?ul6Zw=o$I9Ljfn*ic3`U?>IfEim3g{ zujU&$-hy6wn;w(xme|zJm;lWJxtTFfM)q0`kX!Vu0+d${$}LCddK1<^htTe-fUYL3 zB`SdNsZD>RgvLj1<^@h6_+cDRK2Brcr2~>%$*5S)hyV33PV^teac3%|4lz@8p4?)5 z?t5o^?q+%^%)Yygo~I^U4VR!bTnWuE35hcWrfCDR3q+sxJ79e7Fg`&)RCqLA^2^y^ z0laVfadW90_Fz8Brm|r47sB^u1VgI>kanj)Z4`zMSfHlm8>CwXa$JVM`$2RrmZB-3 zN10m-!;BvH*Br3V8t`DH7m`jf#2upVDXl{5ff18_pzCPK1Zu$$CKKvd8FGeFf)+K<|x33pc7P&S#3GZT4mEw;nr(Ze*F z3&*?-4U-lm*#tber5 z%S_ceqB`b3ko6r~BbvDwdohTvP(3a(pq{x#T$yQsu#OKwEe}KuH^Mh@nxg_(Nw136 zq#a^3xNBke)In+!?qk3%4wB69{pF`Tzg`07*qoM6N<$ Eg55P&8UO$Q diff --git a/images/icons/building.png b/images/icons/building.png deleted file mode 100755 index 11a017cfaa73aef38f8f57db731dd0a7db835109..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 556 zcmV+{0@MA8P) zlTAwkQ51&X8OIL@qD-Qsuyhv$p|ucNxrho9Y}2|`xDEOTEecw+?FYDO86*-E5rS>n zv=AvFN@y{a*@rsg{b=qLr6CpRz~LV5-1D6GoVgdAbM)iS(J1e%9TO7RFz?{LbOt3dBco@bbZH_0OdOMw_$XmV%A>MsEcb`Yr*BlX@2gUVQP-&VZd< za>_O2!3tls`ejI^QczVDilWFhkw~CoyyJ1aXalrwqLnnQIvvPYZe=x1(-01a5s5@( zETH9D8Lj~r){d6fZGi3U)*z^IKH~J@tdy3AMUwEAiW;e6|7sTjUjW3U2TO;s**1U@ znlwz4-{}Q>zgCgCIR$evI2?{PBz>KRR(Ij;<3(IJKP7CpJp+2|*^>{$@+v3_xR>%u u#geUGuQH0)r!pqYfZJ_);(s2~f9wYukV^15?ld0&0000C#5QQ<|d}62BjvZR2H60wE-$B_jGX#(Kw&{<9vg>5sw;c`@i>p z_kaC=>wowE^MCGt=k0FV8~^>E{g3+d|7HJ+|I4@QcRd)^xi$V8^Vx_G`+r6+RSGlL znKt8REw4uuU$^wNG<`ek&pG#xJ(Hh0`*ZlR^+%Epor$llpY=cF-^u@z|Ed2wufXdW aBfwxkOHd_T*GCNK1O`u6KbLh*2~7Ys?Or1Q diff --git a/images/icons/bullet_arrow_down.png b/images/icons/bullet_arrow_down.png deleted file mode 100755 index 9b23c06d7b4f4689dc8c9fd4e9d4d1f199fe376f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^zbpD<_bdI{u9mbgZg z1m~xflqVLYGB~E>C#5QQ<|d}62BjvZR2H60wE-%M_H=O!(Kw&{<9vg>5sxM-`@i?U z_W%6<>VNmY^FQu?=k0EK8(;qS{{MRQfQxhfe|^4DBSLrMi_=~IrT?G*6aRH>fZ%Fr xHSdzT`JeW`iC!n;=N{%MvhUm!=_W-^hCUIl<$=usRzPbQJYD@<);T3K0RSKzPZ9tC diff --git a/images/icons/bullet_arrow_top.png b/images/icons/bullet_arrow_top.png deleted file mode 100755 index 0ce86d2b2bc8eb047ca749fff00716b15c5bd9a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^zbpD<_bdI{u9mbgZg z1m~xflqVLYGB~E>C#5QQ<|d}62BjvZR2H60wE-%s@N{tu(Kvs0!a}YF0}=J!QSUY7M7z;-RJ$7n8*6-IkwdUVS%nn(+HZ=IM>KhySVgJojLZytKsQlJks9 zg>q@PUpbdv;&|+P!{NQ{65)mBh3B(*yP58!PISKz-O48F^~6K0e}RJHfr*NaZ|Z(M akrr=d7xdAvd!`9=1B0ilpUXO@geCyB6I2-h diff --git a/images/icons/bullet_arrow_up.png b/images/icons/bullet_arrow_up.png deleted file mode 100755 index 24df0f42129c291ddb3dd50c8ba2884dc23a2c43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^zbpD<_bdI{u9mbgZg z1m~xflqVLYGB~E>C#5QQ<|d}62BjvZR2H60wE-%M_H=O!(Kw&{<9vg>5sxM7Y}K&+ zaVqV>2dg?$?}z`N|7UG5-|D8TLf!k;{Mi5T|C#@x_qjwjYRvdu`ttwR|Kb1QzwCco x|Ef}l>({^Sf7bts|6%{R{?h*$`OZ2jjF;IsFRaMi76-J3!PC{xWt~$(698OLQAz*+ diff --git a/images/icons/bullet_black.png b/images/icons/bullet_black.png deleted file mode 100755 index 57619706d10d9736b1849a83f2c5694fbe09c53b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^zbpD<_bdI{u9mbgZg z1m~xflqVLYGB~E>C#5QQ<|d}62BjvZR2H60wE-$h^>lFz(Kw&{<9vg>5sw~gS5O!4 zr|{HuUFIBKiQyL}eBJ-L{`UVT|6_O~L{G%N{Wbre{kQtZ_0LvEhDX@>Vt8IAj)#jg!+?Z23wnf7d! zNAH#A4i6V)y_WtvZQ1hT)TAWgjoY{t%BOsI;8VOzQvNniDZk5xCy$)UQWb1PRjRoz l1#moJy|?3|{zvx%+XakOf%ava&w)pvdYw!Pm*LM8> zx}xa+>1^FUyPR2ai85fP3-jG?K+XRr`TqZ3F8Kd{o8tf1T@L?&;`fL$0Oag{XV?8l z2Jh=7{)5DcbAc=K<1cfQ|NjSS`ccO4{~ZuN%wYZx6n{dL0f)n-8cwFD{(e@j`2STU z>;JncjQ{ugvi#ZM%3MW!EQHHe0ByVvjfKa!G>;}_2nGNF&fymKM6jp;0000ef43{&%10 z`rmr0`TyJtv;LcOX%laN^>UMjsi!CYUwmcZ|JfI2{-1ED=f8fLD)C;hoM$LyF)D9~S@raHZk@o8xu=?=BAbx-CyJk|+c2F0@|%^WDn-Kc3b7|M6nh z{|^`I{(pPa@c-rv`wv7JaBHSX+n2kY|Gz!R`v3h=@&9l4pV{WeA)K@>rLPPXC_&Fo|~u=OHx8Q*=y2zb-wG%)4f&?mZqzQ e4THQu3lFzu{izqk|8%^q0F(5@h6w@ zuSbE=i9QOwKvPc#-iPCap~BwXFHIr_gU^WCH%x0(Cm8h3e{9o}5`YUO%{ zPiLR-*D%CfK42<(c~V-?1q(}8{p2N#A`c~!wa4X-$LfsZ0%WH-1^Zy?%r3<3e~Rbycg=S_Egdz d?>~Yc*m~Z+JF!m3&mHJ+22WQ%mvv4FO#s^$Z2kZM diff --git a/images/icons/bullet_picture.png b/images/icons/bullet_picture.png deleted file mode 100755 index 386cb302f16b36e4ae67dc9f0aea1b4a051c22c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 470 zcmV;{0V)28P)``2`~zsHhc-<7$F60BN8G$;h9Qc)$m zPjaF(rLGTDO~!4K5|M!ls#FRA{~+9_mh$B%Z0UrmNw|v!8R{*)VvIsyE!@@WjQ0Lu zG45gF&|%`^8m{Z2fQS@JKovnbzF5W>!$F>t_qCIs%wUXRcKm?<7uRk6jy>0U{$XW$ zkEc3qYB0utYFr3Nl5}@-_vnko8F3szAXJEHK*aJ;t?e|ae*4Gt7rT9)_)n@C%m4rY M07*qoM6N<$f~O_aVE_OC diff --git a/images/icons/bullet_pink.png b/images/icons/bullet_pink.png deleted file mode 100755 index 0c9f73e3f58fec93410ca240016ef0522241aebe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 286 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5i=8@N{tuu{izqk~P;M2a(o?Ym~XI z^0KETC^sqCab0$O!=k-0z-7w?M;1Xr?oLLkMCemR4UW__o=Snfs{&byph%e z=77^@l_n}qHB|c9pq{s5_I-v&H_y*pYjU~LY5(eqL#|WUf--*EUEAAGxHvbtb|TLazB;OXk;vd$@?2>?vIZ1eyC diff --git a/images/icons/bullet_purple.png b/images/icons/bullet_purple.png deleted file mode 100755 index 52ba5036b95383f6c14176ae33300b859e4d27d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5i>p@N{tuu{izq(ta+-M44kBpIe=q zx`X8@9}gS%(w5FYFVig+ojZ_cD5YzW==f41NB?BP0gvSsuL~|cX5(?+BsuSEuz#(i z(0!iz2et`~ZLD6*`-~P&eW1fC)8o%D^YrBE+t1g1f3V_>QFkv3+p8U`|6X{$=uzRE zYb8;$Jas}77I1~H-7TjsdDijKvCOxpB#s?yRPsxju2(W^mhtCPasN(mSRK@VvcWVc q!c)dr)HS~K;xqxD$MKK)8^oXLysE8u-|YeP1B0ilpUXO@geCyg%6BgS diff --git a/images/icons/bullet_red.png b/images/icons/bullet_red.png deleted file mode 100755 index 0cd803115831933aa171497cfe9c1af983035f86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 287 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5i=8^mK6yu{izqk}mh50EX6wkMFui zZg|fh<-*g%H9O|;u|DY#DW^u;K&o-|vHe`x?xbw1zYx$2><(A#;6QU!sSfhO( ioL~suuJh6Vfb_?jd)=>7iZy|bXYh3Ob6Mw<&;$Tq>~Ep~ diff --git a/images/icons/bullet_star.png b/images/icons/bullet_star.png deleted file mode 100755 index fab774a3288143c3ca5ef4a6354476a816d20b29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 331 zcmV-R0kr;!P)clpQjpWPb8b##8}RLd@5ygx>`#(pz>k}$oIkF|*aK~E`Efn%|Bp+N z|GyqlYyW&e-v0A$8BQV$NSgWcM%Moyw~GJ&deHs<=iR3N-_Hg9|8m&q|L5&8GYK1T zJ%$-*`^F!)N`MCR01asV|LsD^f1vFfKW>v|CMpboe%Jke!RPC#5QQ<|d}62BjvZR2H60wE-$h^mK6y(Kw&{<9vg>(S^W+6Zii9 z|Nhthr~iNb*Z!}6uiN$Dz5neG3a-`baBX8yz1H+_;eX)`ni0%X8XBDc-`=Ph(Uan2 zYsR{H!kvIN--9isvHznRsC#5QQ<|d}62BjvZR2H60wE-$h_H=O!(Kw&{<9vg>(S^W+6Zii9 z|Nhthr~iNb*Z!}6uiN$Dz5neG3a-`baBX8yz4q@v|B?28{s)#N@CGn3@%_y|zAV9T z66e<&B4?b6oF&azg|C(V&1ZbI_D}pL`}(^FT2yXwG1Ph~$Q@h8mJYOz!PC{xWt~$( F699+YQR)By diff --git a/images/icons/bullet_white.png b/images/icons/bullet_white.png deleted file mode 100755 index a9af8d44bf3c001adc41e3774f526bd1d1448b1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^zbpD<_bdI{u9mbgZg z1m~xflqVLYGB~E>C#5QQ<|d}62BjvZR2H60wE-%M_H=O!(Kvthf+1gnf`Cilxr3SC zCq+y2HhAz(;&}R`x^q^&(wiOs&2u-u^*?dO$=Q}CfYva0y85}Sb4q9e0M-pfO8@`> diff --git a/images/icons/bullet_wrench.png b/images/icons/bullet_wrench.png deleted file mode 100755 index 67817e6e5a785b0a1f35598671f5d96f433298f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 448 zcmV;x0YCnUP)7VG(pVO&BhbRxxA@I^akcY^KxeXPXwzY<`A1LBLBqoDFV3>hv=E-l& zLuDq)&@>DpLa1JUfu)4d;axw6$9paSuD`@Jb3oHHkE*I&S(Zn!SWK7-&@^p9QIt-r z)dC>|k|brO0%TcUvn&ga<3JR}p&$rGBofg%jys$Ph(@Ds(=<`9*TM7rZ8#i$D-;R{ zg+iad0+J-niK2K}tyVz@L8VdwAq1sT2`tNYe+2k!o8mH!QPL>Fwr%8cIq15Mcsve< zVLE=l-!m5AjJ7wBe*DUo`|u?iI8L1*7z`RL%Wl#%?WQPder$c_6~(fb3t z9fO=s)r1xNys<0toy$Ta)Ef4L9Xj#;LuHACPs?SaC)p1!HoK`$|DN0S(B^2t{U;k3 z{z`Gkym)-$S?qyE;12cK15evqWFMuk`FjMfG>*N*A!+l(#* jF-_{7+4G}*QQ$ohjSunXc9>@Z9nawD>gTe~DWM4f1nGD{ diff --git a/images/icons/cake.png b/images/icons/cake.png deleted file mode 100755 index 4ef151aeef90cba37e483fff6db393e3f3c215a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 676 zcmV;V0$crwP)zhG}s4?zzVdkG3gj2<%zA*q!$2x>uX%NDCytJWaYrPXj4 zU1!!qgC^xq+`MO3-MxA@QLjVPPv?85H*G=(KHPIYzrN>QxF!Im4#IxZ@krPd?&kid z_ZSiplU6Pr0XN$E74*}446)Vy(5l0Tt?p~}o7mB#KX>@D#~Be*<>IiI~I2tp#x z12i!dI9uRn_jAuUmOh`s_#3O#Q@}+t$Jn&L2-mkQOn%5i(=-?p`Lj?c!2VW(AbHes1cgEB@zPzW^m!s{<8 zH^}g>l=Q%z`79itWZZZq>1T&4kE_!Ru7HeXVR6SO2noJcy-wyON8U|XUoeAf zHk*)T8OiUqhEc#)EX_nb3VMysq8mBfIar@DEC@xNQ&ko5*l*<1J}BWse+#xk2O71^ zZKRS>{bS{FIWTbz8yidq6)TE@^|cgAnWrExWsHLC$l+FDW*C*!T_{XINt{JZ95tYc z_p#09P!;b%OW8qQ$`}Pj@4<%r;2b2&DJYXe*!EsR<%dl-6KGEyY2+ae zQs4@dsSC*31|bfe!20Q-oXHShTsI61&!<8X5%II3+V+8k*E-I+hzUk`L)aOtuD0000< KMNUMnLSTY|9xOrt diff --git a/images/icons/calculator.gif b/images/icons/calculator.gif deleted file mode 100644 index fd478fe4a472ac9fec4727223bdb59af393671e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 597 zcmZ?wbhEHb6krfwcoxR6c=6(}>J87IKfiP5&VmICCQh9A`}gn1j~}mHySAgFRY7e*OBAB}-PXUj6#@>w||5UA}xdXUeIzw)T#WP9V;laO}m47ul0eJbU)+(W6K6 z=FMBPX3d^GdseJiv2x|giIXPXzkh$`%vlc}JV@_9x^d&i{rmUlO+D4#-hSi8jVV*6 zr1c(7?>)SE^X8>Xmu}dw;r8v@PoF;BvSmwGSJ&39TjwuWICIvlp5DHT7cchr_a8la zw5z-Oc0|ynOP5l*58k?UYtGzx9i5#IA3n_JKe}qws>zclA3Ahs)22<`Jv}d9zU=Gk zJ9+YCYg_w^lH!RIC;j>JXYSm2y}iBDr%&I#XOC~u^8aAKFmOQeCkrD3Ll}b&$O)i0 zVPN0X5Z2V((%P&mFUKdtA;Txf%V5&t5;|@A42Bkl(2#la=Y>kQ@P;zlX{(4y2r-7T z%wDGByjnS%%LfM^|4R{0vEkYey%tBRJ zr8q2^caOCTa1@sZ^>fIJaq;bEr04 iSa^6!w}j#wg^-3rEFz*!0UiN~Ov0LNL1J7i4AuagFXq?) diff --git a/images/icons/calculator.png b/images/icons/calculator.png deleted file mode 100755 index 701a60a5a4d5673d0e3dd3fc8f316a2ebdd7fad9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 543 zcmV+)0^t3LP)@VozFAzEvI&~0#LAwY>5FK39Rg@@bp>BeO zw$McyP2NlT?u|(Uk#_LH<=ljK?mhP;k2#J5heX6H%H{HXCX=~NBoZlARe>=^i32c& z5WqPH!!SOV%jHw0Qn@9fcc5CW>Jq=4|6^OL)m9$QSCC95(-PFn^7EgPn-5p9Xf%2j zT0v11s^jrE9G#rvGccKoT*Is1-&Wq)um?di)g6Ha$O`*a;Q$Laz(Aw!N@+sNvdAvNPK8Qq^wr_gSuSaWLG&M-o9;vBq+hGMlxGxKZ0_1Wz znv69PFh5E+M2titU>*W4;JO)kE$QxbPq19@+D+v)+U|OcH05hn- z^9B`qb8)9WoXw!qcM~utZ0mKX9hE5&7zjvNsP

2_iw-0w|f6 zFuS4#b)iYT`0g>ZnUAQpb(>qepf*IktyBFOYxV4oqOeZ|FUi@IFfv zRw}I;Snro%r9DVodsK@6;qZ~1juqLmwr3pM#CNL)H^N^^e{AjgWb$WM)mg2}px6s^ zh6U#E!PDz^vIO9DaMQ3dp)-1P28-c7349?0RS*1G{GzT!(3=3>M}SKIoc8Yt?5WOC zl*w5FZ@f3~owW^3akrvj2my5=$#pY;>BgPJdXg+TZaOvsIi(C;JkSpd0 z(Af6KhlOLfX0LY~;|i4v3LMk~MYM#WDlJE#tnA0YE8o(0^1%sAG=&y*D9t4zlgTAE1+UfX?sI;be@iZ3M z7XGYF4&M5uu*X{js9K}L)Y?`NQX*%jAB@Jf@W^k$GGguq?jIHEkSl15?e2|h283h}{rk{y6hWQeEw!? zFisFv!T|cmRtW;1f$>$s0G>^*GP-h`H-mzTP&3`b(d;hDCL-{+T2LSiJi1S%34OTG znWn~v^Brk?FQB#MFuosf?qnt!t(A%g#tAAA`tV{p&t%~)6GMus628BV?|aP6=Lr0O zrxPn=6Fy3{fE84gngF`mQ;ZG4p#ul`mYb)mJw@Q%q_eddamvg>kv)yI#B0M!3sxev z!1s9dp#Z>KE{BK5@W%p1Kt!2cEYj2vBiUHDJ-HCTS{r%b!`Wj=!r&Tb+LFBfRN!=5 zl7aC&Ul)Foh{s4J>JU)^p9+C-Q44MR8(8|WK})8dx#e}T%`v`wFOp3_q9I1QsXihN zJVaEgK9Y|1KAJgEb`m$%VXVVh!8pM>`_Eli`}OBJfVb0i{tF{QT8%v&>u>-7002ov JPDHLkV1feuD8K*! diff --git a/images/icons/calendar_view_day.png b/images/icons/calendar_view_day.png deleted file mode 100755 index 9740f76ee6c1dee706f6fe724bda1208ef445a47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 572 zcmV-C0>k}@P)Ff}Nlc zJ+V-1gdjvrBToYb_&=5JJoz%#Q=n#p0PUsg;0_wW6hzWF z6d(Z#0TH%uy+T9>YJjQ_4o41w#S|V(NC8qn46yPY0ExQO163;l8LV%BTT)_{lxVdB zLqhH!O}vfXt+G~AtirG?JdRPE!p4;(u<%+06sOr5$!l?%`w$ZJisblGeq3lk?M znK(IF&Lv~|%q&@!^#Q8MB|waLDd+L)A8Bgth=QmR)CiKix0+Qk`lsOTj2++4X|3MA z_x{3e%gn9zko@i4h1Ih`tu0ZJsAx1qji_-~z~gH-D8wdL6`?9WFzi$qo8J^aVr5)w?g*$f-IAT>umA~g7`KN%tnR;#U}<7 z5hMW@Lgq>E$!K>yytk^`8I7CZh3ZpP+&cH%(^WC8HJ%e5f2P*XvcxkWwQ`kGkO~lt zlII$NusS59(6q0vCnq`@4S~{naJ;w4`Jc)kW_~B`6%d;_oLG1Va7$7Us|13;&iz}O z`@n5r_O9P&2_$L=A|D7_Q*>C^p+!i-1T+MZ9OX=AAZiJ?X%jKvPl*mHtAuC}!6424^=42In{JdU?xY>Aa%fe%j@!RS-}GG7@u}MX(vJ z>tJ!K2+sw+>=e;Z=V0Y$3Gq1LUIFdtdibFSPSgUs;JGo3ze>ZS-Ld{OC?6xeX_GkI zowC?tTM$B330MKQ%?H2kQ68M0%NJfGeerSnSF=wtJ002ovPDHLkV1gqb2Y3Jg diff --git a/images/icons/calendar_view_week.png b/images/icons/calendar_view_week.png deleted file mode 100755 index 8fe695f51fce503e1a4838ac4a93f5b9ab95553c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 480 zcmV<60U!Q}P)@KEQ1dB*OY;8rG{0D1W!OBLkw-N=dwXm~N1QE3ov=J3VoAfqnBj^Uw zM54xfXXYG>dvA7&AS)Rd=55|*zRs-J<}fw^c=>n$4xMPD-K#DN!X#CQA!mRGN}D zZ(TUGF#(W$<^0Ccwg1U{{qg71`xTV51~7eg8EmKo6-0FJwt;A&35ej=)z?JS>H=Vx zgW<$+P+1ltJpkL>eL3^by|8WH ze>3}MeDdL&w}0&U;_Xe_W&{u=wB$OQFuT8lHo6K%Lkr8Qp~<2Rk*PT#N?1z*LjAZG z0V$SMWb~P*tCKk(rKJTl0EW#?05TH;58iGu9(7SR_g>A2D(<}aN*l$^r(ZZS?mmu3 z3%3x}wQ%n2F|r2jd;b;=GO3$dFC@Re@#xc;wls|_B8y59C9?8Bz|QWU=Kw2*J?FpO W9yz<&(0nxj0000gJ-O!jxnD7oNLq;%;3B=$mW~C-A78b#}Ym zUa~ApY&IL$YPE8+w{2VKx^DRW{x^j};R(m*^Z8S9-^=ClFHtNO4^>s2WHK4B90Evd zRNvv@{p&Eky~2wRC-6pYqSb0Y8jr^>3G5|f?PqEtk*KFqDSspqL8sF}uh+wHIK<_n z6MX#q6V3T;+&aAjAq2YJ?gK?pbdSdaP1D3|HoL3QsY$Qbi+a6|a5#)~It`Knl7dhu zghr!*N~MB8Ab@N(i+;b4$z&p9n$6}7jROaR0fNCGwg*Re{(gmpDPU86x^Us%)obw2 z=aha6oFxO>?KYy(sFbSkv{)<Xg3cSx! zV*;wSwBMGSfGRX({TECm3Yn@1ESF0eb3TJT z!7c-;DBO+#(G_BEZ~a#M_t*Fbci5Cwkwgrt00000NkvXXu0mjf2e~nc diff --git a/images/icons/cancel.gif b/images/icons/cancel.gif deleted file mode 100644 index 2837a6c8b37f27c1ee622801853e7f89cd6d661c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 607 zcmb7>%TrQO0LBkw83~G<8=yo!@_`D0a7~^{fL;Vj#TQ9rz9vmV+P82pdQ6+9Z5tOY z+P7)p!l|)IWpvY`nKo@|p_qXK_g?P3=Y)Sk-{QCX<~Q?w)X<>SHY*2m@H+`k0KnNS z%4RV^;I6h4m5RNl&1neQYoQg2QfmVZp`h2}(^Ebe6buGtpa&fu;)gNxV7gdSBbZFA z!y#;Mv9z&5;Qka&?u3`Qq-y$n~nC83}r=&5wy35ND@~g^*Dy8NZbovg75uJVh0x(n3`g zGMjmwt_UGFHH30GJ~oWzC%IlTqP%$x!FP0&jGZ(|axxj)(ZUA;#{e)vC-3(QvEkCF zham{wX{9~pQePkKBXKT=7N+tLo&vz$?iV2BL!m-rJ!`k4*>PbejE;`DNI=-x5sXG0 zjW7`6<6{AUTzSTP9+!#B_>VNP6(RtVK!4Ub`vg>Ot|e3JPt$3`>dW}6nPq02{8ad|XM0 zBi;8NrQ*?z>aPir##S}DpNwmzf$%r+oP@Cdh%el9ZHmOxwV{4FNOg@-t%*ftQ>{FS^-G}e*;M)Q6>s#cP zI`Y#S($G6W`W@NI5g|L-MKl0Zmu$m^(0~^Lwo5OO~d#(vPfz1rk%1hOvQ!2cN2d2?-uHXIEo8vToeK|KINWnNa4+Xt#u)Ykn|6RndSZEQHfCZG5CcC=T z`(o_NTOjbCK|GPF4%)<=%>`agEOIe^kJ+gSd~H}=`AYZIyJS-%Y|LeBxc&DE@kHvV zh>Ui%*7I#PNlilw1y@n@6l>qJC^2jm6{4Z3p@!y54^361Eu)pbu{`o1V_kbZ`MR$y zdh}&Y@Fjlr^zxZmgL6TIkJ-*qG#j-x`OjkRipD3485n}nXu!{oDbIFDjcz9A?M5% z2PG>yimcp1&>5MK%jHlg6reM+k&%A@^fo!tWxH|QR0Ma}26yDTXd(nZ3#(s)-0F2- zez{50^fbdT&}y|H>u{>mC3+bKC)$uY9*^5a08#oQKc4{{)TYPG8KIs|3 z4ORT?V0lH~l?0j&3hB7!W2DOBEbhsYf_b7(V%tAvUOfK}hzhb~cin-F00000 LNkvXXu0mjfWpp$z diff --git a/images/icons/car_delete.png b/images/icons/car_delete.png deleted file mode 100755 index 2803b567847e69fe64b0691dd30dc83d5cb8e61b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 689 zcmV;i0#5yjP)O%0M7oPLI-^+QP?|IL8KS>CIorH`X z#{U;kx03cgzm1lD&iP@kbCb?=Y=W5?V_7}Rrs(-_;>oo){}iC`H#cZ?N9}vbmIR%1 zFb>LqUnCTbuQtCJ{X9Zj;%93SH5XfYC4n}U-rJ%075Y!Dm1|o2KLgO>T-6vG~ zU~R__Y6#D#b0=pEa*kw>#ikhTYrejO78!u~M-2O{7X0h`!Spj`&?4f`5S^I6JW_j*t8PJ zvW&#i3M5M{M0yFvsP|eYai!-03M21;xEHWkv7}aG!u?@3_kw}O#>S}A=@c%POHdx# zsv8(Pr*i&jP~^wYdlkZ{=g+|{pU>AvYnt#p|5xdXh_44m_7@FzBa>dhI@OYE3e_<$ zZRa+6J1Xy+_7vT%DrKrF&msApA(l||?1t!-wtJm@9S82DmgjFPx>RjABG%JZH+%FO X1fWDOL6s`T00000NkvXXu0mjfK8`i% diff --git a/images/icons/cart.png b/images/icons/cart.png deleted file mode 100755 index 1baf7b9fde1195da75a09a4ac8a7cdcc11542c3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 421 zcmV;W0b2fvP)|9mIxVK*qV(LJCr#hETgDW!z&|9$wh3`VrtfF?un9PlRLs>2y(-4 zrLKn+LM$+c2R9RpV`rECN`sK@HGt)oU|=2}GdOWzXOuyDL72-1pjr{L%5=%8 zRQ(pEyJS{6KMcTc^`djdIyOcaz(RmDeoTeB8zvcNthS*`>A=K4->m8f9c)wTh(V)x P00000NkvXXu0mjfbTF;3 diff --git a/images/icons/cart_add.png b/images/icons/cart_add.png deleted file mode 100755 index 45c2900089c5b3867019ddf2d1c9c41552d66b32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 711 zcmV;&0yzDNP)uCxwbv=KH9zoUDon>V zr>UxI+l z#KOV?tXAtCMJ|^E)z;P)Ha0epPNyNuGGeh9*4Njuva*6;Fo-}P0FTGRu}4QoI5;?f z$z&=kve_(-kB`yqcK=$PP6rN$<5RocMzvanBuNc}!7!r8WHP+bYPFEh=h197LA^$! zfn+j?{r!DJA`y-Wg+eHo%iPh-%*WOJf!=_4JdR?q$TO(d>pTNeCUT`x=_#{;C=?2$j;X1sGkv$Py1I(P z!$Twz39zJva5zj#0@-C@2}IWEbb{S(Co+D!Mh2YN-Q7j4Rs)eqd1+}0rBaCoa%Hv( z_V)ImR4Tvy@g2C`Zb};S^YgG+ER-}@($Hu$P#T`&g=Gkj-rm5_>p@&oUYt1fLwX|J ze5DHBL!@j);j;`WIfC2L1zdi5R^$Me%XOaFdp9>XM@hqIG(xY}Q_`58p2l6>Rjidv zSo>h6-65tPLP|ZR0blt578bWNJ3BinisDB`9zE&c`pZjrU$*1q7cN?9zz+a>(-SOd zeqB2|JMjDcJn8ZAag2?P;mWgfcq8A3P9ElDU1GT3!LQP4wNR;4n4FyKbHIS=TjBtW t@&m3+C;j&_I88CIp4At!{qxjQ|2w4%;hGY8=Cl9+002ovPDHLkV1ip>OPc@y diff --git a/images/icons/cart_delete.png b/images/icons/cart_delete.png deleted file mode 100755 index ac5bce5c8862ff091d89763a9c0ed19a70e639a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 742 zcmVy4^0M)9E7~PQm4Jv4X#i>2wOI zRH|*W+0?aK4YJwnF$x&tVRE%v1))#~tyT-vYBkjBbJSTCeRBEc-5YwfMssp)=!%M=N`K@UcJA@FCzC%1C**Ti`$vEb7M z#Ts?^`j+?NC4&`CzviI$={-Ftmv-4ojK||Q5M>V$A1;aO4mN*`U~|h0{MrYAk1s$V zk%C^Q=4}-zr;nG2V`{jav#X!KFy+1v0a22=1R0U3pl!)07)2~?QeZA!iu>VoZOn9222<0v z*_>{&&CTH?(D~_>E9czAE;OB+evM6@zV{=9K@6gc!wZM=Jmx!`m*JDd zXti1{0sD=&MB)B>h zj(dB1iPBK3)le#x=vNEzbD<6gv>$ulsz9%mV|S?@i=8F-(pG$_ppk5Ej^5pv75xEM zf{xusl6r}dvKW%*HQRYk?CI$_%_#l8tE&qNg#sGsBT%+y%-9~#(Hi_(tH2I3NvNX) z;nvG11Oh=ikAM+NOkTNME>t#DY%YGT$GlC3#7r6XqUG3{dx0foQL5o7FTsF?d_JGf zBVar&W^Bo>%S8OKyNa;p4kqi5!KW^T{q+?XI-6M=GqtF$u8#cmm?RPj8hPiC@pm9I zBgahBHJBbAPuc4(T&%6F74mpI0!G1WEW3Jyep_`W>ufH~I@+$gEu!-$3ti`La_RM5 T)9mKtTqbJf(rJ5aze{dD~bnS8HAT_H56d@9+Ejex4r>0Plb5p9Kbk0a~pV zy}i9qsZ`f^p->2<0)YU0J|8HG!sO&6#>dAoIywrw-42Vz0+Y!EywGFe(8k<{~On&vLD*(|1}rjW^GK@0DIP$=BL z>la2wMo=geFflO!mNehta1bZ{u+@ZwyEeU=v|z?wXYB9qCu02ejcl%#>FH@C5(yA7 zaWN(A3nlv*#Y@bUH#BJv}|>?(RmPstr-=WfYg4D1PX| z+JXy_p_>rgY1sMeBE7X;+V{qM(XjH)iemNw=tpPqZPkhyZ4G3?>tA;@7#J8h%94Jp zR;vkVbar+^BNre|HKVko2Qz;IbjKNNWg4-b8iS|n!uN>c+<{617FG*66$-^IsZ_cs z6}L68PA|W(;I5B}XC>>{C~{={N`xfU!b$^nr(4*yv@hRwsCqMf|CywvR-QL~~kw}D){QNqzvVhVWh2j#+V9D}J*-*~M zkb7aov*sg~Jpr=gtpqzxGl8~K4C}F8}}l diff --git a/images/icons/cart_go.png b/images/icons/cart_go.png deleted file mode 100755 index 20ee0584f61fbc7a4759ccda9a3d805460bc70c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 763 zcmVaV?~72n$)U z(3)sy@M190gjOOI`b?=sg7TQhow?pSp#)+iF`neiNzTl7zwe&&jl>wk|AggV0r7a8 zX_^K~DR{jhC6h^0f?*iYb^TC^j}E2)`u%?N_xEFMZ4FaXQ;QaHg>X1*0*(q*RWUg^ zS?cNO@nkX?%*@QJ@&lh)1oQIpGOSiB3WWkZ9uKnFEPOtn*>7)e$I{Xgy1Kexx7$7W zd>-j^S{xXS#bOCdBodJli3DqEYQo0GMu@*4)oL}QC<@^+L$WNBa=C2QQmJJ2x3{;& zb&5h+op^}*H8(d46+|%GY&Ig8IU^CwPN$P}cXz|(a*<##D2RlDg1}0(HBL`Yvw?vD z@S&nose}YrFbi<8SPZSWUy>cViI9E=xm*rILqpQO0ufx&gH$Soj*bqKIS>fI;c%GD zZnvB8y};Xg0k7y|!M<-E>7bD&CMH;IU1{43FhhfCP^i4;aRt!py^Q(QH~3s2*riI{ zyZb+w^fxEojfdIQ;7#a^`@_&-fT6rufYW*sbKhQLA@`QbRBbe!I6gjpp0nQL?6(BF zNZF;D;OzQWXj}#5YBXKLPvsZ-d=YGEI~KAsE7$FrpI4pYu#Msyv^Lo9efwma(rkj6oIv4xraO`e2x4AjJ z%qz7ynhQf^4{kb_bA{+YnXnXn>q!`dZ29f?yO6Y;L=T4x=brERp5Nyj5dcxGQ1bWi zI@E|~{sy#ouKYZ$PITH2MX0eH`#OyGSr(6+m;b-PEAA$uU*3ZMY)6yhB7WyXp%8+> zAVx+;;C8#8i_+;dXe=%+VqswcYW_at++FBCJi)tF7QwU?FUIcRmiauc_16it<#HMO z`}<&7HZNLQT0*5#!QtVd5R$PQFnoN9@TwDRLIcw$Ifj${c*!;4y8c4t;NSpTTU&5A z9N%mNqCsDmrec@N#qc~Yyx(Xv)*m;Rot?${ z`ntfNSS(_GejbJG0vO9#w772{J5NkZU~O%Ux}&eJ?_AXuVzC%Xr4r`m=0Hd@@pzm% zF?3u4i=kqR#li#v0V>9cHIhPIHk(DEPyiKgZf+tR4r60ugEkbL{eC}kxg5H>x{hkz z0mpF|9UX<&>&4K}5G4&l8YYto27>{5y&luk)6i%%NB=yeTG83rd8WO+9ZIG0dsTz+ z@$suBA+hMg@DQUsAr>6%U9UW+EYZKlsm&;344G1h9{W_ga)!^XZ4iT&V zc2}#_DuqI^L&PenRQjW;0l8@%AuX(HWn~4Elam7J?(S}AwOSA{d_JFW#-tWvv3R>C t1GCvI!0PSoJu!hyCR0fy5-P@@`Cr&f$(>anrvU%}002ovPDHLkV1l9|S^WS2 diff --git a/images/icons/cart_remove.png b/images/icons/cart_remove.png deleted file mode 100755 index 360217b526d10a3a39e0acfbc4f4a41bbf986734..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 769 zcmV+c1OEJpP)m=n&zdgPnpxQq~{D&6m05<{G#c-_mW$Ue%e~ zz`fum33Dj^=QhnX%iLgNfhl_HBn(1)`Sv`|L0V3t!;c4k&+q&F{hrVB69EvFi`xFH z7oJ5bQ0uv#KCgzxxfgF1Zyk>$Uqiq264jO~!hacPgc?kIl3+0(K z-c3zSVSIcXcDo&;qoXfG$z&2V;_)~HLBM9;{6hg6B#Qgj` z2x)G1c9wSH=(q$HN5y)*o^v{#RE#s2%AkjZ4IA?xgLIFL@K zA(zWf%I?ABO=O&hm&d$z@ZEbC6 zX=(XcV&HPQZjTa>l6HF&*VMp~gzprfM$L=2nF#@3kB zqM@PTdszlLosPj$sZ?hs5R1i<#>Pe}#-I7$7+=lQ6LRxi00000NkvXXu0mjf3)^L| diff --git a/images/icons/cd.png b/images/icons/cd.png deleted file mode 100755 index ef4322357cbc34e0b5eeed34f9fdf553a1de2ee7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 673 zcmV;S0$%-zP)fk+XBT$+GFLor|=G~7Z=&Bd_^zJLLP z{dbOmhNM(Q`mp7h`OloWYysF>=iU40Tf#?V356IC6~fPKul?5pw+W80zw#nVEgemD zincj})E^?AZGqXAKHDz@mch}3iwfqB3rPo#(gwa141DiTF(xO6U^eE%d{-hX0gf3o z8{W?(@4ZV6pRS)EXbxQZMi1!D!oC#YJOO&yAsn%9V=twmsxF*P_%ZxvD(XXc8T9DS zr0103x=g@fvEJ!1y5C7b$Hz+ryB7+I5>V>_sj5lWnV>%bWD?LRmBAb^h}fbg923Y3 zqK41OM-q_X|0W}n)p3}pGlwoCoNU0Ppf+VweFB8`9D=Abd!7lXx6+7Cma$90A4ue; zVKQTfc(bHa=}i!!qJ}b>M^UnvkNQWze=dVN?ZJ22Mf(14f#NRkt=PP(cyuKepkb#y3Gz>xmDvuMC zIuoRtGlX&@?9*%nGA0rvwq8W9jW)GLrXJl50KN-ci9ozQ$MNkH;k<IV|^+8goU4jB6C^%Mg5h>3Q7RCr>7r_DEKw7k44$|vUmJAm;${=2wBT`(Pek9N? z+*$Z3+nYyu(=ufrbdbTWW%|!LE6aD^rgi=em@XcV9q^{200000NkvXX Hu0mjf|3D;c diff --git a/images/icons/chart_bar.gif b/images/icons/chart_bar.gif deleted file mode 100644 index 9032e836078c6559dd3d13fdce6e3583005ba267..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1015 zcmZ?wbhEHb6krfw_&%56Uq#8k*)s+84*XlS;@|o;%Z`5dw|T?A1@r#oWc@2E`nP0J z?TY7e+1KPUuZj7b)hW60w=l13)2k`l-!3`3qI2Ub*OvPex4jALzi(Z8Q_ij2s^<3M zv&*HON>gV%Dp~Y&^~Lp556}3weap&=>lD4J79DzDV_Z{fQ7`6qRx0UY!qkVwn<_1< zZ_YcpsAB1}Z-K$B>t0GFTuk2#rcF4K!y5%h2Oj(<}p zH}CDTX)sOP5H9L^(xuxrxaXc$$&HBzro>Hsls)&^y33pYwKi_Jx>eG?_}{k8Ws9G> zG~X^*@S<=-d2rvu=Cv>WWv1rMf6}`4WzCA`5~1f~CqEE%KH0nZ)n{ABN!#Cq_TG=1 z@*rl?gMXE!UTt@3cQh|J_%40+v)Oyz&D{NVMDf{k2J1% znKtv$%wuzPa@Duq+*Q5&x$iVr0j&ec(;xnei_ThIkTd78W5cby1ux2%y%I7%7TJGa z*yfm!>9LqekN)l4_AfH*Us_V$yeENO_x=^;R&8&Xb7H~2$rDxmYusD!^Q-T#vv2a|<>DcTLtLJ0IxS~f;u;~`h4#B4kJp7I~ zzWi)#VV}Y45Th|6MA>1gbNq~g%r6Hgb$Q#~kV&qIn(Wzh!))n z^W^$!aM&X3bCX~Vo|JLOLCb!-`g!yN7b-yh!|sbVZ|M~fElQAyiB?lO%sjz z7TJ==TTk%_A{ znxkIa+E~RC#EKF{U0G~y<6)R9(uCp7&f7|JN}RHwEO@{EgbF~D3a1<@ip|9yZb^6$ fo@6A$W#9P^w2GuX0-m@}00000NkvXXu0mjfB69Bi diff --git a/images/icons/chart_curve.png b/images/icons/chart_curve.png deleted file mode 100755 index 01e933a619caa8c6cb9fcee5d9eae853e97abace..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 710 zcmV;%0y+JOP)RLq zBa83f%q*uO+hkn-px3iWUBhj*zEtZ=#J?K1BwoS4fri4we+W?%x_!2UEjG9A57v+ddMu0 zbbp6n;=LcDNq6gD2L9C2J@8#y?*rTbgTj6Ps|^D5|MCj{`@<*H#t`wKg(3XGf2QyU zf0@G{{9_BdAC4aSKNVGeAq>dh`~N>9tN(u{wmT>x9B`-HYmvir?8JeOFVbz5u> zH|V#x^ai*A`gyzm|72hZ`OUy04pZPY)6&ahrsWHdS>_MiW?QUvoolwwWxnYbrv=9G zAbFr`rQinWXqscE(MN|a!$l4~hCDEFhknBjyGi=*G17r<_V)jl zB|4H8rP?#iOLZRs>9-bTIvMExwy4+UuxQe`XV#)U8P$NSZU2ojH2n=T)ZNqrEM0*# zI5i4uc*w#O3aL7Q*+%*5QW{Y@8K%V=Ja7ZFGq?QL&e;54D`OK7Z~U*7wgHIO|JMZJ s)OG(gKsaSB6tDTOk-Qp=;RaBG0e_Hjj63iYg#Z8m07*qoM6N<$g46R|L;wH) diff --git a/images/icons/chart_line.png b/images/icons/chart_line.png deleted file mode 100755 index 85020f3205adc903896aae3ac8b2431d81d25a92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 526 zcmV+p0`dKcP)vZ>%h3)%~ z#+IbJ;FFDG??-c+T_21rm1LV#4~LF)_b?ghyQZ9u#u#o3H=L6>&|AoXU?qv@1Je4>AlGSTjH9nQnv` zZj`d7z#wVmBfa>gsDTLdFI#`g-3Fu!5 z$Es7u?8}cWwJkZs2@EU)U|{|IH*L!Qck23oaHd4px(fwB|2_x$_YKg$rO1-+wT;%l zQ`7tXR!Mt3P6M2(&pepC=Hh>#e_xW77aS^%7ub~^eqd9yzkqI;iK+$w0LJvVLF}yV Q@Bjb+07*qoM6N<$f}^baNdN!< diff --git a/images/icons/chart_organisation.png b/images/icons/chart_organisation.png deleted file mode 100755 index c32d25c16f8b399f0cf5681651d2871a48207627..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444 zcmV;t0YmF_A89qTKGV%LqLqA&{k|D2>yV7qLmg~*x1@cbjz3zP!z2FhV16<-TNNz zuIz$fLNt0{xWmll%$dUkM1*+|PHJ2ZGvdmC35A3UoF6R(-~DS$BH+@Xy#VYsLyQ>z zxq>v8$ny|FSR~0W2u4ic`k5mcbEIiLksz4Y#KyE{9LLn}_oq&%6$}Oga?Zh83$3-^ zU4V1$eaMkz85m>bTh*c{3ch%tltQ=L4Q7$u>-Ff*JP6K)r(~Ul_41v6uR1rSij#*! zl14&E?hS3Iagod#Oo#p}d7WbijUO{Mqc5?@<$>unxw*22 z?bQuGkPsSMOgEm)qR1=cLLyZOm>T65_V?)|o0p=i_uUiST44Cz-W mqJp!8r`H!$*8T4x&4Leh&Epbde3h>N0000 z)5~v^RUF3g=bd?{7w4U(okA~6ODQu&AyTU)qaihDP=g^ZV5Kfhx?#trq@YHED?=nm z8X{F=Fli(%K&l}`AXu0%WX=(eO^E>Cfm*WCSBpMff|A0@P&0}b- z@vu|b_butF9--78p(rVogpgvCg!(S1p8cR&zh3^)8!?W*Wjq8aNzH zSpmoJP*=GgH>dKrnER?fW_*%Wj@zr0*Zui{_|PN3iC>TI+Zak*tPO9#w7Q3JJCC3a zV5jvo&RzX%snXq-j2JJCCKFaPcWV{5XYKvx54R5jK;Xmiqfw#6K%KP_V|Ed#`y;sT ztRPX@g88|-V2s`i>)nU8)Kx_5YbwyzXn{x#yz=&N6aWHTQcq{~E~`XS$nyzsS73cG z3QL6WP3FRQEO`2wAm>1$IgG-LK(wkHZA}qNaO(LBV0(k1a%AlSlq*pcu+U!h1V)QL zgVw}BN1A;dn&m(!J1{?U7yV-=mn2ht$Ch6^GqI93 ze+WNbT38m_O&H+JhxUC)WkQh%K3KqM@|PRK9ha^TE=rQe56?E8-@O!mOY_{s^E~~+ zrER?s(gWuj#5~m2gfP8eLrE$<02qDwZRYF#Q&Vl1x2yzvG^f0?x!E#`zrkO#K}6uf z191&uyJ(I-hT*FvIFc>{fH_#|IIB4w*PKo}@s=_t-U8qAV2))0#vr+bkRFJD&g~Ht zCg+jKWo*w;eE?u;o0&f2Z>pWiGPkB0;zk~!#wPeSgJuLNI7oO%#KI^Pr%}w^geyh& z?9h=#00@LWKC|erv2Np98pst8YG{N{93Bxo5>O($wzBNzVh zg|)61U)Dl=s^Xhk-THM1{5S%=@JIV|JKj0xDM_xYzV}>pVm|e*{jX;NfaR@ES)NqA sTB$w0a+2D0+Z&ca0*O=8=#zfKm;e9(07*qoM6N<$f`+80v;Y7A diff --git a/images/icons/clock.png b/images/icons/clock.png deleted file mode 100755 index e2672c20676177efb2fdea593b8f000fd5f12342..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 882 zcmV-&1C9KNP)Zkp%;s8}r$h6cUMpt8KZ&`memftw9r2BH zXZp!+CFaEnJk?xA$eKJbHrNPn>;Axd{TeCT;zL2Z2lqOE#$fse--k~9GCAnb$WrIY zUzF=05;%7ScRp;-^ba=g4+!_yjOVxZHrAy=-Qy;3W{V_ws3i3@rj zN6Uq**d4Ifp5hMksmBf!JrmJQC(GkeNV1GOW##ZtQFwF|H80+P{}RL%{YNk_%ft(I z#;Cz`v~ti@ZP83cwQ@*mu2Dwn=d>z@4RV(M%#h6&LDo!N4vuc zo|;?G=MQ0U0&vMd?WX`v6t{tSSteePbgELlMO}xKy8^QHBD{2ALkbX%5TpZC;3a)d zD?(MwgLzpdUa8!vFvP diff --git a/images/icons/clock_play.png b/images/icons/clock_play.png deleted file mode 100755 index fb4ebc850a94b2c8c59502f38230ac54f164dc7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 943 zcmV;g15o^lP)GE3cNY&!T;=j^f;gxRLSB zG&}X{iKV^(TLqKq((nH^HB^n^chQay$`D@KFoIjnHWarF`VjOrt_N+()gGrw;^Es) zekWfGF_*F4W6rycY4)M|Xov1W$d9~teRyOXfP(u9xvB$sk2`Shbq^GVew4gr@kzaP zX59LCdg%EwGkF7;F9pnouEP1|#-f#;Y_{cdNG`6*NqK5QVM8yJbeph7olboIHi!w*0{lB+uni}?Wrdw+^I36lWz9>_zB+Q!R?Y#*eJ+7IfA?SK}c<`81b)DS%WfNkkdw7agekd(LJt;LA} zdbHK;#S3jCdh9L?O#>;7i74;R$JJH|5^G}+nRTnh9}srxzBoes97%U|kSfg>rh$!m z0rw0++Cc#)*?5$g^H5Ak8dDIh+>J>2=C!_n&;)r9(Xr)x6+{IbvXosg^g6)PJa~^6 zM$(5Xqmkbs!zIIM{D^?Dr7 zWwB4O8@cTnIMbzn`GdXciH?#bSZFs>;4sc(r;{{_Ow*WTd* Ro>>3@002ovPDHLkV1hPn!1DkA diff --git a/images/icons/clock_red.png b/images/icons/clock_red.png deleted file mode 100755 index 2842cc3386709236ba7608965c716054c08ecfe0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 889 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 O0000Fn@9 z6}_p-po(}ZBq}nQNbG73P@(2?NiZt6&X~)Q>%%i4kr8qQ=3COEo>Z8 z*gxJ~L9Bf2mp|AW?4AJafQ|B5v`GBm0)<^C(Vi8&d>zzaGr9rvL%;kwm?qdJ*cN`F zOcqt~+Pr7&1#Vw8>eV~{)UEe zBiv}!KK=I6or}I0!A1+%jcFuZMU#K=`u1Z}C8^y<qlji`q{QWr=E3G!ag_G z_nO;N#PJ=nv_`o0C*ktKkBxus*Q*bvceNp!u2=KJyN6kimuW;5e!ersP&@v~d3bGL zL=5kUl{40IL=1Ccby6%>#?RN60G7VkIr73|1VIEh)s6TUxDXWT zs&peQbYX%;a3Ml#B!N_onSc(OOp=+*$GtQ6-rw(iyA+ctc;M^~59e`ImCZ?K$0t?v zp(>*);;E3R=sd!;{%=9RgLFV+mBTn)0(Z^)#jt!uQqRedPJ=Z z_@5kt?prW*$m+P^HpIy1o3}jyVnLD$PPPHs#dek;aj|Br?*BYcZ1W$omHSB2M&brR z@i1cGBOeHEI7Tq|C7LWFK_8-mHL?|u%XCHG#2bU3EBl4g;}&n{Nfsg9Y@goGG15*HQ0<^0KM#w90$_`+XUOjFN}~y z>v--w+G$~<7J)N@&3Y(U14x9LHfV|@tB`guM#v3KqWLN|tg$+~LFF&Q;_X1JrxoDl z(J6Do7bDnc0lV=ONmtP14c_1cHdT_^b2N@vd)6STjdAGA&xEA|PG@#%&-|n5>rc)W zCS02-PEf=vl<@n%z#sSq)M7Fv9NtH6`!3%6U1jpSQ{)#P;{0-&zVbcB_ZFSFW`6Xo z5ggYgix<%DJ2YJ(96NzY?~z4o*m@OH7xJSeIC1g4`_)}Yo4~gjzjfATPUW|Kg#^Q( z<;X&i|^ZNRWr#pPVFRH$(hHl`Jc@d3urM&Fn54lrL`PX7e3_ppL@2%x)G0ch8 zX|dcoc)q>_uylL4RGZ7+*(k3aAtI**(xB))9@w8d`yYJHm@9=_7d-#~002ovPDHLk FV1nt|Z+QR! diff --git a/images/icons/color_swatch.png b/images/icons/color_swatch.png deleted file mode 100755 index 6e6e85212b85b7ba0918570c2ebede3047596237..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5iLZjC;k_h{kHThqfC`(hFmxSO zSd?`bB$R({-*5T0gITA{|Fu6pn0eqpx>}JTL$UWimE@yNe}L98c)I$ztaD0e0sx43 BPNV<; diff --git a/images/icons/color_wheel.png b/images/icons/color_wheel.png deleted file mode 100755 index 809fb00e5aa1f28726db3e2a5adf8f536bfbcbf1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 892 zcmV-?1B3jDP)n`HO=N{yXhvI{h!_0ot^nS)JXfldwbvK_6nsG2Z&Wi&v@PQ zheULFT39nvnw}fe2u3u2dsOe=oVI#j9M1QC>zmd3XI9C7d+1ER`oBP|zA^0tJC|RwkIug^e1fA zX~N2H7aFgMFJ&|`u{>vFkyaX=K50U-_$2WeLXrR?y%y9osP$m;9(wLDa(L0IUjO100%{ufD~Y>02&pjbm4v#?whc82VKwMSB#SqZE`$mB-jcCHlU+0 z5!eC}fZ@6i#^osNm{8QAUxQqp!Je3uR3kxXnuJ~O)qerH3OWj$UL38Ff>!fEx(x_D ze9vUyrvmBUlf}BOj>p;pw*yU}8i3vdQv(|vr;&lW3vL^{HjGO;yJh@AvLL%V=8X-d zj-N^keq9GM0OdgtfE|S-5NpMdyD8XjL8D3d)Ci3ms|*JAHOZR#{F@d3_1R~2nP^IO zx1jHVVL;UcM?t(JNH>#EYr=^m)YgmC{@kfR@+(bUGOoFIyidRT#pP%sAgjUt2GomC z-GbUC?3chRN8#8QO)J9o??pQO=z9z5hjj@+!++`xv!lb9;ml&Wvph&Nw86?bNyh%=cqNQD8i+$LPB!e5mg zGpxOzX7}R-bs>C2a6nYto*kyOG|b@Xj8Ib}DhS31*TztPJc)IANu4e{-2WFIIaS?u SuzCdm00004%P)i2vikyMR~)n*keF9=!Gc_n*K2@qsNT?}H4v4a974 z1ArVJApZ0B-@pGKzWw|E^3%Wn&p!V9|K$C@{}12&`+x7vzyG&i{r!LE6~yrB1;;^# zm?0Y=moxPMSn>r>N00000NkvXX Hu0mjf$^yWL diff --git a/images/icons/comment_add.png b/images/icons/comment_add.png deleted file mode 100755 index 75e78dede2c9cc3b789b880e5cfc930e60bf2c91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 530 zcmV+t0`2{YP)~sR==D{nWel_pb&wQ zmrP)tTX!KGk)Sk|wtZaUrliFMw8)@DB*yUg%5WWG5T6(V4-98P2Jan%`$mH2CMxfq z+T@bruYw${Wles0MWFb|;3xR>p5Y`0A6-c}5Tk;D`5i8(NGiA>_&gYcZy8+IQP@fF zZXmTF{tLW(AMNV7m2gb(;iZIqf*k=ah{%H8=`Ai$Cv75^d>yNTn3+NncKU5>gAg(yWFU6q^MCd-9z5C;@-l1LJzY$X{vI4G2|m$FQQvK%ZWWD8>- zgBiw>v1GpI?|EmK(9D?Pt^eVDzka{xd6!QHK=zl&{!Nfkrw-)wa9%lZ5e+BOkzk~6 zb`NhB39iQI(vgtta};&~Py9F*i3oR3gsTUF{+^(_C7hTDhu4ICg9NR?Ca>sR5R#a$ zg0P~t8SBSO2K9G@Glq|E2nQeV&ZUGcy-m>2zaj()4h827pPD{kBVq5#25&OFu5&K1 zZ$Y$w#8tIM3A+q$Ur5+scugk+7OSALdr=5t9Uh{Pd>x{jwKK^o{&9%j&aTn&d1W2y zExSmgD!@cq5T@eg7*6z|mh?c)uMdeO+6$8zUDcUbEs4eRSQBVl4RdcXmJ6d%lj=Y1 z3T|p2-xQrZ4kh`~6T?s?0c8O|Z8(gLap+Sj$Qc~LIppMuxoDeKhQFQ7ZB;NPdEKq| zKERb8J8}SqUP@&!aZd6*F{tz+w*;+OA#)3PQP7u#!%*&pgIo_xCCgEt;yds5U)P)+ mI@7OINTTfluFUYPSbql#9Qmg?vhGv>0000+d`M13jj6(1&OTfK) zg!qUPVgGHUxLV}I1}ul#Fzc;Br`N~2tN2UM;u$wjO|KGs%@7Q_4glGCOy56_G3R!? z>v7<%+Ya@+0M}rU362yLEYfg7Cb)5SH?+V#Xxtre9s4nKZWn?f-mEDouwH?+FD?;tGeKp(!2F0zvT?C)LP^6Ev*qJN7M`JO$ro7H zs9RU)9gY7Ht*ot^&vZXZDa)Ugf&)Yg1xe0XL6y?}uVE_`?(Q9lvEUEN#mz=NKU_+g eqns}GFZ~5YF8XjkorNI)00003X*4F(wfr0a`glL`HTy1 oWj8L^!G5+kO-!8JjERGZgNx4o8zwI5pnrkJT^AW7B+k01lLkoCLBu@bfRhnJSkT}{ z5cwz-C?AEk;`Q7|NyO0V@Jst%?>X<@)8|?6hNplZoH}p}R=_wBd4A);huvr*D{8ta zv>weaRZy(zA{a{x)NMK$oUyoq;&Q_jA9Yid>V_!Q3{lkDazCTg+2GL8fKO$yVv7pZ zw#ZdlB3o|B^q?JFdAt+nq80!As0d}1Z|KFR(*lEh^G}{es&~_I}wY;n4d5jAs0d}gj@(+ z%6*K*29I(Myv%_UPWDD&5qS@s3~ZAJGDH vT*SlN0ce3)r#d%-F%SaNZe6;L@E^Vb!Ji3~dec0&00000NkvXXu0mjflI-*P diff --git a/images/icons/comments_add.png b/images/icons/comments_add.png deleted file mode 100755 index b32563442dac029c917d2904a9b18699286228fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 648 zcmV;30(bq1P)+T3bY=D1?}_NlY?Ho5{==PS1UvlqjYh_;~Z)+;i@`X96ce<835NqD^>4 z&XOGf0{;@=hx@N*ld4p4l~reDjUrhpR@CV9f@0l`W(F}47g(HMcGd5)tFmQBWlN4) zva0$#ktvJ8U{eF>D&mYUS}ayos$i>R-q!og44#*4SLN7QiqjOoolCvH@_0Ib%9!*{ z6Iog3kb+N=+>-pnU?fMOHjgh#DFJzSa zr=~gCYkDH){NQL{E?_QTF5oToImZ%%?|Kft>?cE#_{4{V%E1ld`g*!OkTk8$ZoV> zKJX^+zklnS93z%haS*(H5Yf4Nh<wEBWegKV6 z>~o(OY$)C;Hz4-DOD#^Xc?KafsKud);N~}=u!W3~T`atL)M&$9vr~7LRrWkLHXNZ5 i7Wa^nT-#rJc;A#1+9e&U9~QBdhb7i%XEvtC8q~e*9 zTGor!c}UBO!Tp8?(pAKoEsCX!Dv~OwaI#?S|7Y+#Qz)whJ4xaq8BjDPqnKjt1re<^tvd-qJefSYq(anuCjd93vneh6K+h(i&yD!a1MnYqE;KZ-O};W0OdWKgI_pLK zle)Hr=PlJ{;*D|xQkXchK9;-N1yEG%b|6WX&N<<4bB3E4Y$IN>=XK}S-Z!3BGt%RR zcEyG7o^?>|EvvpZ=hdbo)D!63ewiH?<=TAz5V4&90#T#$5FJ5q1^@s607*qoM6N<$ Eg00gme*gdg diff --git a/images/icons/compress.png b/images/icons/compress.png deleted file mode 100755 index 8606ff0fd23c97d71d43afa0bd587e47c1e90441..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmVZcJ%1+b$|lEg|m$p?$2s-?aFIU^lhS4 zt=5>B*onJiX5((A#g&zdZ;7N+zyNUJY~v8{(NtqH{`+@8xk&m zG`u_jq?FJb9n=hw%`FbbD_m;*4&fCDuR=V`pUsP7fU1Tp7Q?_nK-IQ85K85YX7gRJ zgwtoomKC%RWTO%Skh+*{%b>T>VfXA~9;mZE6vn=~?YHE7)8Zq;mfF}l;^WAReVKbv2dyl8I zZdsNM9oTISwn$ahzw_tMS*<#q^{;+1adq)i5#6)A{L5!4^#~!-uOE5i^$%Jv0}EmF z8*kM!$D7UP9;w~?<@c-q)vuj615`xxpt}~#kmfz_<a!u4Ek1OWvhNg%r^rdTXsY3VK8?SdPP#w89em&*t9`8-y> z{{XWmi9uo#0y2mREC>R)tyU|D<2Xwun+7u3ce~yHC8N{n5>SE*7ca{{mxCuK52M#x z6?VgqVUHr69iApkt_fp7}UIJIX)^0!0b=W3KH zu#9)c?;$B!KqeOeo#x5*?d$d(>1am)Y%kbK4HaZEF7DqvCglmk2%DRMFl4hCO2bI^ zX=T@9j!era3Mj9K%ggW14jP4g$@9D^u1>q%4oF>&Q{%YG^bC$1Iv|Sn?VXTj+j1A` z_4;iBxjK9L%sJ01;N^>_f2ih9=zM1B|Mb6I%0_FShXA!&ZGuYnYi{m5Mm>)<#Bd!= zpw*3PwK}@fZ5>`FlHMWvu(zR>QH2KN`fNj zBHaWZEgiB#>49kYe(borqx+hj`JS_1d)R}7LjHa+tu+qg(TC+eO4&q(D;ZL8C8o8; zLEfZxiIlQ~iE1b1qBZ2=VhsA0V`*@y@M|Sc2@Wtadv3g0hOc*O(ADVFjPTWAYz(JXS z8MBaa%aCO{h8lvp*ONKIh5Bg|-DNo^;jg=q=uDZ@vodOJXfu;GK`ze`H-VrWK!nUg zje)ufRUJ&ouB2nYB2_pI=gji&GcuBL=+DM-wBZ)fbc7&a9AP1Ztk5)S4Ah03bqXOt zxx}VdK|CIVljyc=oqO1G{;Qew7T~%?tSw{^mi$E(2^Td6>M8+m4H!qrBtj~%w(Y~Q zVrXkVOEN#2&@(U(cX3H&S97B(;-}{)?<>?0)RjVZqrJ&ONChgCgE9%PC}CSBp!+d1 z`bkAqacXYz!94aLsJZ!K=3b*?T#ge1nL>bsZNf4&8mt(EkXYZ?MK0YwH2ZOI9{(VN z&%WPH*v6AY+yG?)mZ`CxE@5ZK2lW}4Pr-ctMRE2V`yf8$PurT4&^p3q*2kt>M8OM& zl@MbQ=U&8BS_$dSjo(q&2Pyd!8`}{~Xr#A_DDL|G({Ha$;Xe@?&|@q4QbvV}D#ixB ey}zEqA^Zgf(1+rQ>#k7%0000@ zcBf_(#ZX_-sEX?*?9!(0{Bl__G*A>pqqyNz-JwmMeLB3br>{{IMX~DC@qV7t3SKP# z`S8;fU;WT=%}r-cOzypXPb*-3Ew8%sb7mA5#*W8%v^9cO0QbA;S*^D+wQoBcTSq`E c0001h|Fw(1Q4#~PfdBvi07*qoM6N<$f=H>olK=n! diff --git a/images/icons/control_eject.png b/images/icons/control_eject.png deleted file mode 100755 index 924d817bb6dba773de390723aa4ad985a9821713..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 603 zcmV-h0;K(kP)Z_%TCJAaY&Mm8y)OMIz{xTv zv-NsS=ku8!kB7kNbfU##LA6?qRjXC`TY(o@zh19|h5c|ikgn@=xm-jHqLoTTFPF>m z7lD^;W{`Kg9c{N;S}s?#-|uO&*$`YABC4vgLZKj;0=!W)hfz>i`(r+i9|v(1^AeR0PN$?YPB*gBP$$Dr&9sLMLZsV3p5%H6&*(z zAR#L<0v3x!z~yq$WHJ$x84iaOi^bk0@cAnE`FuV_2CvskilUIm<1u%{Mxznk?{_Md zN)(Ai-c96lm5Rk8Ll3YFyAU0Z$AXBgNPurnW*pL&iN~IVtNi+^ULCu&uzdXc=%tD#Ux p3j_ihC#gQ4PvPIvUti*a1jn*n;#uCM}X>FjAph?v>HMSz1 zf;3HmQp)fUut1?Oj4&`TKsnC2z=)5XlYE)v=6sKH?ztlXFfxpDv!GF+Q=nI1=tJK> z)BIUKOgy7Nd;3kr=-fVHy#5%we{jeLLt%bvH^RPlC7E$Y*@!h*`a}?GjY$GGq&7@a%@Tx%C8vwF8lXfELN2$TzXkYy*Ch+<~�$xF_*&%15 zB*T_3AX-q$zz}$UIw`+p!e)WS?n33<^>s&1&I(xCtWah->dvT zlk;@30hM|iP6P?&m*26-MFB%#|A5C~VO%V{IK>h&5)otfwqcaoAZ=g@xqS*twq+i< zM8F>m5dn;kMH#-KMn+dml*sqcOVNV)g;%P8{>x676~rb~r8XfEXT=e5{>~?YOAmbz zKdzITiDd+!tv0mR{WeIgd~}QXa<5RRwMm-P ziA0tOonx6Yn5=ejf?oZ#NW-fNn9t`>tyXEJQW3uee2VqU%jL3O zDwV`9fKS`>DOS~Au-R-t(=;CI^%~IC6G8}~xm->#0IXj5xnaBAg4Jq;LZM)Y&1MTY zogdr{KK*_l(&@Bp09dmKlF=%PEEX#Z3*_^8ST2_gVCI0`ZpZt9?&9${F#xSrOT%X2 z1_WS647=S9i9`Y<$qWvMle=3i7I3{@Argsb27rx;18@VDf?}J^#xp0ANidltP!tFM zkJCUG;c)l`sMqTRJC0>w1{7mfbTpk#8NkE=XdU+r1_KC%La!3oeC6?Y43EcyXOJX` zizkx_4@FVn{axYZ-EKE17K;!F1YS*Ka}`uor6_t%0)+@2jYh^eQ9K+DQA}9~Uk*|> zn-w#ejE-YNCx^prAM7yza-4I45g$8m^55K?|L?r+odSTVNnJ96LXt|7TGI4L>d~Fz z&-h8>1xd<>>vgSt=Y;X^$Jv9(As-4y`R%SPp?5wYYBW2LD^|g`7v>f>k`%^{A!C3N&EeR0q1EmI9?j zT<^fuCti3LD9UEdoCoe2BcvKUvD7KhHa~-21gL%Aj#%s&OGVR_$6iSuSoaqp%eN%J z76DWmU8pyEP^yWrwDz7wF9N262N52Jg#ie_jHv7Leqfv#&`?`&#}Fpfom5)T>7B!> zWsOHK0qlpu1b_k9E1Iu8-65F`u4B0T$PKrdAs|z3NmX=VY5BDbP=DEtvNfR%4Y5Zu z5VMpOD@qkb3GkT!aIm-Gn* z`85iZ>7zVE#RF?u>-GjXzTT2IfyTsX6XN-%yiPPHr0n_^E8Hzpe7MH(L!#e?D90zS zP^g}fN@{04Qcb!flJ%iEo~?q;Y!zl{=dXt}`IHwd0cyqO;QYY^WD0dM6YM#f=E3C+ z!2-R=&FDY;{gfv^)4f+|?c7Tj^US!+(gqX%T+i_HIx{<~voklC*uOv1|9t14Z-oeY TX1>|Jb)Dfc3=%9wAxt9|F z+d&sV7i|Ri?b*J^NGvsH()NE*Nyw=rHOq z9m05cXZVv}DLkU1y6J^t9{Ie+&$xra;?lD0_4(zg1yOkVF~Tl8PyD8)GkMUbW%rR#bC7lH zW%k*fs%0@X=TU8A0Wzs(2GkeDrphJpj*`W_=V8Q>S%%hUVMG&|vdP5cv~+zSM(r5L zpk_q)&Qt7?cq5sCsciwPJ89hPlW@GQ1=qU$Sc|6_M~rNO8=m1wO9sa2uK|I2rl?eL zT~6cT0}tkd3eMer$IdfNqs&lA<*}XA&^z>6AT1e~Jc~;*4J*EzV+KU5Yj?Brt{(qr zZ8L5S1Q6NMSc+`^00WL8nY7Hn?e#GOich5aUJ=JG++neU8!4Q(I1!F%48;^V^!D|a z4UC`W{X$aBU{}jyHt+*yo5%4bq~LVpD~Qp(vO#Dw#r{liJqga{D7R4KaEAERXdHzC zu(GYOsh_;Up{YN>64bT|>t2 zQspYQIp!?(;ZbSE6T)gtVKbqg{VOuYU0$?tJyJvGo4;4N@-ba~vSMy|JkGaw^$FY~ utNgH&m+yDjgvO2${t_?#`!W5`bN&ejO$WoA0n6Y30000VN9{w9DwJzd%Gm5%l6k(Srw1f=C@i5k%a|<)Grew%RTzD&|xaqcXf< z9*@@$bXSuRnUR_GMnrG_gFk+>+ij)QYU#~plQkL*gL7`wYBg4^R`qhZto$k<$f_Xo z<#I{K-n-q7Ow**(=_LO_v`{FR`Fvje zCh%1@e~?F`5v|v2G7LjvFc=W3dWbN_cqWrko&v(J{s`D?He|Qk1!*YBtJR9ERvYzt zJ(|zwGN#k%P%@d+p8}#;49X}KB%94HV55G&Pm9Gu2v{Y$-LC8hs*A_t>?u&M*9|ml zyWL6wWCWZ}Ck=-~vRJGF7W(*b$n)iLp-3cRJO#v!q9QpfKQN-6~U9q_TF$F*h9sL-j zNpc$weSXQZ6Gag%5kOy9HfA1@g zVA*&|VjFHeVhIV!`DzQM7F-a@NRTNvNlYYp4z%6NAQuJno^MeOJ!7dzy8e(=;etr6 z4q2h83Vb36o=G4!6u79$u)6u4LoN!;_)kItHmh9g5CP1HxVh+sSiS*Mlqx_uVfwL~ z+}p|}Y*;r1{g* z9DE4_W&SW~qUN5hWN@-RUJ#q3Ngxr&iJp;+4aEd;HM{A>I)B?7>yL4`Nc6h^we^ve z3YC6fwXTqAQWr8=Cd?emR={YnNptkhuSFVP{Q?6Lt^ zqF4A?)Arx1JpP&Pyh<4sUhXnam)AJ@xmkE-VuVGbg_|=vm|INb-=FD!zVlDxJ_uiv SXLQ>D0000yhD diff --git a/images/icons/control_pause.png b/images/icons/control_pause.png deleted file mode 100755 index 2d9ce9c4ec4b787b77e2407809c8887b6252dc6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 598 zcmV-c0;&CpP)U3VE{tZoOXQ3gborPd)C!*bfsFfgUA%b`K z{k54{z0H}ACRrHvW^d-rdyicUV+{VYtX~gCqfs0|(-=vN2o1PiuPW{>+#Atov}dlj zm>FQRf_YAoB-!b7g57TC=llI0*6TIQX0twmlwz@1Su_y<#c()O27`fy#f%p1x~?-# z)7Wme<7b=AhIKj}t=(=bMjvNzr~MuZg=Ct#TCD`Id5F*FgY9+;-ENndyrfd8-V+sI zk|x?lbD>axN~J2Ai^W%{R^I>_0Z9u6gEF#73lqsO`axO|3~qzj{hRS`0}LC%>-AD? zlFkeU5t@ED93Che0EA(j5rE6(g7f(t5ddbb)O7oPG}&BpJRae6I)RyiO6J&XwmSe5 z5%qypxm=P~KCwUk1<-E^%&v%&sfQfOPbAd^dMUz$2)JWFR zn(5E_apM_H=DRN?Tj1j{9obJa2Z=)=&L)N3y%h6eCr3~F>o%;x+TQ>p^I2c0Y>yvi zIld-=tn@%V9S}8IT_{!R5Z+_Ch0UxTYjubYFr%4GeU;lC74TEKeW=Sl5HvMAeX=Gi zUD%DrWY78$Ld*n!b75@ktedM+7b-uxz>7nb#SWC}9Rsqt73OZQ@HmbM0hR#sjmFrz z`Qn2R+;S%k^W^LfTz4f%8vIhZ??Cw@GT3qQ2$+f;Bm~?nEIi6bESWz7m0cmx39em$$Y&@l88-}q`@)p_|Tj# z*1_TN$urdYuZuK(mFK)s`?7zHi^MWe;3cvrICC;Dz(yzzbJPMi?R@k1RUUs#H=pHg zvrjkZN3JD?ns*D2owV@K;bCSR0s0c1`uAh{pXdA&89xkjaU%7W00000NkvXXu0mjf DW6MO* diff --git a/images/icons/control_play.png b/images/icons/control_play.png deleted file mode 100755 index 0846555d0ca84cb99d4c70dad80144a232604041..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 592 zcmV-W0k7R5;6} zlgp~&KoEw{L*wq6jM9+RMU)_iNO6K~b@$|K=nj zb2!5=4Mjq_zrU*f>U2#vSVnMZ9ja4cY`AdOM*t}k^goWqfa3Iq(>2kSH;P81hAqIyBm_{t1>+!KRdtb~{1AK7>C~ zD-Nov`UX!X6ET_La7f{B_|*cRuZGR%^C`gjd@jmW6h*+;8;{2{8ja|Fzf-YTq+l@k zGLg?!DijI~9$+CG0*bxx-)TO!p6i!Q&%N5)kR|pVJuNho7M&@5o@ZpsgYXg z6pCpqAEgW*0v6~{n89ISU>M4A&V?DNy7MOQX68Ka`MBqf0l?U(ZY+X9l}VLZ)#Om- z;Wxvd@uT21RmKNz1dH$Bj0zp6>Db9B7mX*l{i7uPYA;7kd3g)QVC)rxA$;8vC|jea zS%$3%AWB_OF8f4{mJFo|55c22v$T`7VytGO85j|cC%=pBjskcjxd*)11x{77(<9$R zNrwG!M09PX(8Nd#urDkdGiz{FkfHKZhPUAguyq;A^$wKyj&8EE8)WXSvDl6Q4NN}z z2Zd#i!U*1a7=Vq#3W3jRZ6Z9$+&MVBAqrVEFbBV-XzUqFMNrFnb9RsDb%-T!q1pza zrNBj9g5~vhG_q(g8Ht^6IILQuOJK}cdY)autaf$;u_Hxz{;liNSF+ zP7JVo4aPtM&mF+{jGz3=veK}ME-bIS)D6sEz9#6p*nx(m=)Gd##2kGE&YZW%&7_NU zaJbxh3nsTeLlsIj==Xtu`3s4ZJ3jM?zzC+xEl8DG(CzhM_b>rg=Lda=hWnnX#UBVW zoG_R&W`Q?ax-3JI?gr8ns1oY(%Y_9|I!G4+85=MXv^z2{WgQJlI?w zaoVx2#b| zLX6^UF84fh?wy$kBLC~BD2js0>zp+XR}r`}LU#$3n|fVSTQ&_fqK z-dP1W_0w_)Fx(96Hd?S$6Ag!Gb0{2;SA#|hQKxxo4lC@GkWvoF>433OT)ML_c*YrK zxk(GV+5xw=j}C#*d_)ZQm|^vSE$e_Rfi{EB*{sr@#u0%!GuA`kT6eip5)*9h(VoI2 z7I~jC*1{1PRmB(0C&t&XN#G6@eBuONxMW%!n+~_GQB^!(14SOFz%!m0KGcES_nU0K zx*VUU%kcb!9C_-b+%XxB2spb0jf9EGvCrBTt7=&<*|?4A1r-;+e)BJV19u#CG)&jc Qk^lez07*qoM6N<$f+7R3%K!iX diff --git a/images/icons/control_repeat_blue.png b/images/icons/control_repeat_blue.png deleted file mode 100755 index 406ec333bc036690d4639cbec70e8f586e977699..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 750 zcmV`dI4bfJkF0x@cXCL|Igq$5O2KprVjQ%O+X7O;#( z4BD1bI(<+cEez0UoerJ8pvUZH<2j7y zcZNUt)xrxJYFpmPCdcPpZrKy&*VZ>ApFbcitp@qg#TeIQPnn2A+}{k&#TSQNduHE8 zR1lLg6t#%bX_+CDEg*4_f_v33^v*=h#I2ZA3~EX24{j>CdV}A=`*V zT4vz!`I!OrPI2eFNk)w9XPLPE(JbD&MP{&ll+#ia(bqqy8yG)*4e)6tkBnME*Ypl9 z-y3DbfrSJUUwt@@D-R}c|4op+OgNr~#cI=AsIxgE+;$>~av4mxb*QrFQBlRSu^2P( z#4-pavM8REG5;k1bN7TkM8nPocv)tTbCDe=Sn=D!1EK%memuVc8qO zwkWfiP|txa2~#c~+AY08Q|E`jSGoE#-RjvgwZ5L>o_F>0mY3bqi%w2z>#*|89S-gW g7yS2U`k(Lo6ZXgk;$VJhmjD0&07*qoM6N<$g5UmA*#H0l diff --git a/images/icons/control_rewind.png b/images/icons/control_rewind.png deleted file mode 100755 index c0294477171e87351813135e50e05766b5607b0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 614 zcmV-s0-61ZP)jUp9KZp49DjNvG4H?RHybjH%6LlQtR+QmfUZ9|2q} zb1_@3R&Y9<;C{c0I3ABMpUdND#U4V-<+4^P zmE;$|hi&#L-fp+BSS&zQRT1m;8m7~!4xyB?d_FJf0A4Ra+kcClPUnkQQ53O{tKaWK zCX*pLfH#XG8LeWiR_h-DK5r;AuD_5{@H zb&4IwGM39FxLj^tf(vG|nGhgMQJgRykHusLg8@XN(Ps&Kz61{+kB1PTO^?STGGd^0 zLI@0pL%7{;P%IW991cI5$mc2*3I&EG;6f2*N9brY5<+}p0(|FU#zT6!NV!~2&StY3 zjt&2KI2?o<1mR`E%xIkpwLl;se|weF>9m|oCK)eD*v6h<%{X^{d4LO<&*zhW{FoAn zgcONHNGKGd!C+AJ`~4~xQLooa_`CG$*Z8mT4&e|nrfoDRBme*a07*qoM6N<$f-U?5 AUH||9 diff --git a/images/icons/control_rewind_blue.png b/images/icons/control_rewind_blue.png deleted file mode 100755 index 15d1584bdbb2c26a9fc4c8269aa54615a58a4657..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 745 zcmV1hlor z)=Ec^h7>5J3?Bj(D6|X+0|UcQj&m*_Qg!D|-c07sd7pF6opXl(U}#WhWg0W$d_xV%ATb~UcS*dC+@kfS*m{?64KBH-eM78JQAu#&2c z7TM!?0X98;&a@msh@1ehFDx4~_smCS0rm@Z$dv@5Y^ec>Jl}_`uDh5!i#cpZh5&_) z{y|~cgJzZ1d%`?CxkdJIg%by0u(~PqB0%Zdj?maMmYO=M!=;B#0>~5_5YO>&?w*4H z@LRbi!eNPrxg`gUUIeK8JG(3%R{o~|7so$K+8_qZe0Iz($pKd%d&oOhA&AGYXkKE` zO8~w=kN^smCS05H!-WT*2mpbXAJK6B{s*`+;U?8|s%XO8{Hs1d`DH6am$(L0coEX9 z)c+Ho)WS9-4?6~g4NrO@c2FaKCYmmR!DQ~YpfIn+s8pr^?KThtmU&}3Kr*7R^y^Rk z5Xsb_*=oc3w-9KI@B4=+yK6a8uQ@#oTkf1PnlL+NjAm=Zh)+xqld|idFEF=^(avw| z4U*w)Kx6;tnV0ZXQD@SHtHr7{`Y12 bpX>Y!%!CO%>C8GV00000NkvXXu0mjfJYGkQ diff --git a/images/icons/control_start.png b/images/icons/control_start.png deleted file mode 100755 index 7dd1c07fbade1ec8d985d95fd89385667bf83e3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 604 zcmV-i0;BzjP)V=42{wMyJ==FL^x7*b^oepca+Xm;{Xf~Uy(P(J3T21*D zAjGN=^W}0$$K#Q1x0{T^;Xw2GoT}9-uT(1Pmw*qkc|M;B58k`oj!e^})9EDV04fefqL?N$IB5&$S;dHP}hDFLVh>akw0DUnDp3(#t{3=|9E&1OS( zyMvrg7bTNPIYt05old2T%jH7RXwM2F~VlEOTqhl>IpEJOe`0XNaO*i*Xs-w zM;fqav)QCzHk(OTpMddrEITt83@989KT;6=)$sFvzsthux=wFzy4(=~R{#u$L%LqC zR4f)L7z{p&DEg`t3I&ecu;80x$iEP)ITpohD^Ctgf=H~o==W*|y0)VM;-LQd9lR=YF)677| z!Jh8V_;KSkP5LJrlF9S+j0qkk+2iPm7~x{#{$ZSbvzK9J-4zqYVC)27V7~717pTZd znit9v$VwYJS3ROyLxp^?0)a!0U)oMn7(0Xv0eUoZ@gH)t)d5_J+J%bT22oSJ)g^nf zqQZVCEIYOm2+rB;rB+cID%~N1o%g50=A<=fWgC_GFUb) z%s4&22M=t~3G+RMgR^pz#KbcfK)ZtsdJ$j@d{400GnQJeAz+sPu#&f$`6hKh0J%~V zq(%oWs|qZyzh}{lfSK@dRK#JSxg@DDP3^*cD+kP0j(npKkSQvp3bk_uYtD5My##O+ z;RpcDs9R5c#9;NFP5{z^GN_^r%PX%(0OOZ~7+aNFP*XZk{E2|i#E`vI`YjCrsfz|V zndEsDXoqvug2CxaF}ZvhdOaY6!{9q~KO+jO!o5Vk0qt%NcD}`cvVR;6QTNzYGWq-= zUX+?7V0e7VLW2m6_>T!vT6W8eRsOC$*+0hNMWWwDsLfA)S*X-WV71;M{bCz zlg*1#VHC#iD%uAHty;DTg0}q?ty;8bDFzCDreJ80{BB+R< zJENR4PZMQi-K$n$6{M+e{`y zCzHvi{{^55g~BV5NOa+FIKC8%#WFEpk_S+;0uA4flMsu=wvk9g@eiQYYGoUZ#;;nf zwk?;-FdB`3VHmiWEa5y`gl|tCa~huHAQ%j?r0MVf0GiFFt=sK#C%yTk;Ec=V5(eW1 zy!^<*iw^+Bx5qH>dSE^ra{Kc6JlJfuBMv}5)@Yi~=Nw?K*=zV6|Ft zLOAX<8jU;B^k)=l4vT=l&3kn^9UxVL)9GYU)9I9}vfXZjQmOn(B@&4pQul^EU^1CN zHk*ZXIt^qGkTG9cEEbJkuV?WZo6QC!5(!Z8c%13?`&?OQ#B#^uF;uHnNTpKPc_2n0 zqyCI{R;g4puH&IXp%AEOGKB zFaZe_Htgq(0OW7HPl9o7Hk+@=e6O@xZTY%@-!Rz$1Rlkwh5!Hn07*qoM6N<$f($t; AN&o-= diff --git a/images/icons/creditcards.png b/images/icons/creditcards.png deleted file mode 100755 index 4eae583e15294a046d9ba4421f6b832361b7c516..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 693 zcmV;m0!safP)Q4qy{_r0XCiLueP)TcDHRjFwyR49fBE=0SrAQVAxqZ`35;M!d_>Nn7(Yg2F` z1vlcNi$EwyQ)xj+tCU)6UTm8-FYn%Q@nZgv>VaV{%$;-Qo;&K+v&9$F$=H(~+lm8- z0Adgk#0Z!mi!m4@6ib!2?_bW}qk+)1(fHHTL+1etq;Uer#c88T|dM4_%NSVb{RO;L$#*c>!gO`EEaw+pK$^dpxC_E1xZNEcKya6MW%d@1@X+oh8 zN-6#Y&+{UVuEoyT++I zn$b9r%cFfhHe2K68PkBu*@^<$y+7xQ$wJ~;c5aBx$R=xq*41Wo zhwQus_VOgm0hughj}MhOvs#{>Vg09Y8WxjWUJY5YW zJ?&8eG!59Cz=|E%Ns@013KLWOLV)CObIIj_5{>{#k%TEAMs_GbdDV`x-iYsGH z#=Z{USAQA>NY(}X7=3{K8#`ZKMgf6%T?Ed*Cat6T(z(gze_Vj!CM zy6@eO?#%UBLOT}?40F9R=iD>%#+We%%UB#s+R_AGvw8Yw4_Zs>2F6fS)&oeXpp>-P z(4Hm2FoZ|N+3e;VNHZ};&)gBvnMk6jHRTlU@9U0$Oo&egxTGs^ATns~z)sFnC~aG*pjzb8G=xt@DLRNB;YZL<4tG!V^NUq+~Mv ztN7=;N57-Juq!r;ZvU(T-}ZaSebaUsBWyIhc|_vmN(Q*NXt96)H+}<~rjDAD_Iw@kR+3LLZX?3 zyhGkEvUzKYKpu0v_u>?yY~y}#nAbh$p6}dm6adQqK)FzXa=E-qP)ntfS|}9Md_I4Y z%jHh8*{qt$WYlyzt)^0`-M<7XmC7CwTlIP!6`0meW$j(o%*9*fiupyDJZx7&n@&K>z*>QCDhTzTp zTlnzwp?s_A3C!nn*-|JJ`k^?T&hB6^z;e07X0ws&YPAxuvwwlMjasdSU@%xy91e#I zzZYAh^udB=a16G~?^>-EC_Ew4q~Q1a4;7oucH0!-LK+*Y)he3JCK`a7P}Mc?vlj7AM;VkzMEhOwnj`hl1MBj6s4Nlz_+^kH@of;eX>V_G&2` Tt35or00000NkvXXu0mjf&s-qj diff --git a/images/icons/cursor.png b/images/icons/cursor.png deleted file mode 100755 index 532f532d87ef60b5f2cdcdeb573ec949d2918def..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 354 zcmV-o0iFJdP)I0T{~(qIu$a8Oa`;1VJZ+NJ#? z)Z`G6Xm=;i@Oy^O@W4+X<|%s@Z9U8K%Cou=JW=N{umR|dc<1KC5j-&Bmny}u z1Gr;ImmX!ZVOvnb2Z3IG9yvhp5kdn#W^JX2LP{w9t>Mgm0h`0-w1g7ei1zafe zdny~;a&&9~i}?5QG&nFlE(hRq9e(XsJj>7i0YpGB?|)P=F8}}l07*qoM6N<$f=`l= A>i_@% diff --git a/images/icons/cut.png b/images/icons/cut.png deleted file mode 100755 index f215d6f6b7c81ab344a3e53e0e5e756c58c82d90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 648 zcmV;30(bq1P)Sxb0Y6MkDSd{nPwTp^L>b`TxVmKBiF^NLQ>My+_!0?|)hBPe_#}P$?rlUF;M20U z`oNWE|K(DrsR+gN%g)?+`OfqmmmiA8O_U(YfPnV(E$8mN{jZQVJ-L7LxzmTQJ^!PS zHqDyoKn&^H)Oq>Q$Nzns&wsn~^6P)|vPC&W#R9Kw95|FC`?q!91!~-K_R;^uDLWSs zj7A}sG%2IZxvQP(HeS-nn71T-`ku2F9(?#8KXKbp!Qe&~yaot4r%3=c-cDF`=YPn& z3!hUrzxqFO*Ny)VU;p?Y-nniMuVuI+UIUD>=B$ZZdhM^2Z-JeJcbDl-H)3?9>AG_?ve_7A86r2Wlb?y7)ShoTkzeah}rl)Oq{=a0=sekDkpZ?d4n{v>% zcgJPxg7sgx4Lmup8sO5j^?B5iYcCv|)*VgT_U6A?-trsfIcr`APCfD&B(EM;R_0K# z{lAb!kTg~UrQ ilDgypkCC?sx*7nVRiSN*cNM8!e}HvIH<9>qC z*u%>#zg$gv<}MShGjnAGJ2PkOK6By0hyU>tw;vUW?dQg807&yrQ=RMQ-E97!vNQg4 z-N*j_tUWjWKLolUYSQlg5=m36r4lDH;xu5ThU}a(Zr1-N2ys|V5M&R&;$i)N&feSq zmz{a{|DKP-|BKF6|7S?@XW}&Au#M51wR+0yLF^T(QZp|FIQ=hOeEQ!tf5-oe6~*Qr zu++b@&qD8hH!l+xRs;50>EAnPZ~Anzf$E{VUiSajXvrViWT0~Tn2ph=HZBI{xzd8= zCmhZH_X%+*U^QU6B!BX8TcaQ6fr?gZ%5MN_lGviFy#9=X>EBjP28k8wGE;1k*-!zk~CMF9Bv_3(^PCOq;5OC%H;f`~O(q$Q#t2<^v$A>fbmv%e#dKTwK=Ku{5lS|}<-`a#7b zzTCOnnT>at)D}AMFuOZ5&%EqFN(lyumd$2ASF6=;nM~%2?gqc@U=#|4PqkX@EBo-9 z7pD#bO_RUa>*faM`8;MYfVi$JnB-zcBFc6gjl$d!bF98Q!!!(Z1_R~P?e!pt#6CHJ9S&n_n&@=9 z%GP;!@Co4c*at+6vNz7o(6en^Q1%qHrc;1)9IRaz-$@S$Z-qdC^ds3X0NvQH;KS)D z-dh&rW&@X;1cS(45z)J&BVt+tv&GMVJ%!EiW) zLBGZW)#Z+gl-Lih&?>X3SS-S#ujQ;9JRXmIB7X)8`d6ETj)D#Q2+$s|<_b7-B9Xvq zwNfqlEp%y3$uY`h{Y$(Gn5@}sqEsq95lpAkFO5dyBmP6^H-51G4J|rN2Ujt<`2YX_ M07*qoM6N<$f6CI55DN5t*xzxdh4vruFz3HIvUK)W=dVA z1o40|dZg;=BsS%8?0UUYjIPu$!FmrQ=#bRL0 zW^8nKBi`AGcv~BS&COs;rgDt*dw&yrZEwfw@Gxfj`{5cKL}Xw9(Y`+H_w-NE-^wtn&EU!_>XU`YVWUJMR z1^XH-o(RH;ETYK*_{cF(vQ;u%Hk^yuFwI3u^hNq9s#nu?Og`bvkS04)%_N@TrQ;3>2FkW`ei1Ll5n!` zNhKT%5dNIc8u^Izie_;dQ#_-tWX zI-P!8C=@<(4xcUSPN#3Z2ta*tr~b@E06&A0H#Uw}hz7xQ1&rT!GnahHABnXf%pet0iY23wD!ZNL2O^w!J0B9`u#p^+C1$66v3^K z3vWMOpwzu#gmp3=homj{V9!jrsKap3jSnX_o*aI9sfxvQa>bKKlc+ WlT<+U@H$xl00000x$iEP)-YXOeA2OND zefrk;?i5-sm%CFe7T>cE-}!O!&{P!hgS}Q(aAj@|t@U+yi;Eb;iLfoQx{8UJ8GPT^ zK!0ID+R{QOszSm}MkE3w7K7`$7>dU+7z!b-suDW6=)=R(HaIc@{gjwv)zdR{O~X#J zDV?hIIy@q2kB*`}Gz3@Iu~V%|+fJ<(5Ww%T0eCUWzBxIGdb^Ej%ATUuR02w;6Mnm>~baaII`Fa1z15qy`;NZQzJq*+2 zXJ==TN~I8uMnRba_(VYkZ$FuM{(2W~-^QC~H_>Xf;4e$1QUNUxs1;d_bFP0$u=!2F za`_7;5@EEOzyB)JG);Ikc@922Jd|ffP{G|NA0I52JdBS;pwYrOoilcJ;&y1YW#(iu z$;%_F)9BTBpsEqZt8vP#sRFj;!0lKvc#&3_3G(?o40>A5%E9~l`vH+0qIuAL*s7Xn z|FmHDT(~_)8hwOl4_I>roOx<$3cX%WwgmsLdi3C4}Mrzlg<+1Y8PEBfUp0jJpx4B>@E+cy3`^(Gw`Mf+2&yxZm<$to~Vpgvg&QKNR z_f#1(r6svZt%iF?s+n<8X?B&!h3g9Dbb8_=MX}!;HiQSAh`bp^WMl~Z-44teO7W_Y zV4thSL{h;rJY7!l3%5J4H1!tIzB`Dv+YxO(haWeausGZYkI8^hWj6mzo=L0{%;yxzh{5!Htr?51 zvG|W62MzC8BZ76hRpCyO2zOn<%e)K>NHge!-~)Ap33OdWw6hsLYbCxGNt0%wk_2z7 zfyYvXheSG)5HRK1VB~%mq7Dmurw#bi@hEcOr3&G1ZiF*$M=&9nB#VNf&Q^r$4G5kp zTURh&s)E0%5&hyVD}sp<72~zmAY`Y(9aqO6CXF%=zFHGzO-A&I(pE}v70YQxCPJ{Y z4L+?5-crdLn3ZRPEs!A4ehEY3ZRpL~w9>@aMN+{F4dI@v&>(QDHQum!mG~E^$OS8l z!7?%Uwib*ROP67Hw`ika)gX-(8Ia`-u_IEhxG7U<13kSsMW+$lbb2dUMm5p6pa}cjgA+U$^mJ^AjD?&bdi)8~y+Q002ovPDHLkV1g8IMc@Dc diff --git a/images/icons/disconnect.png b/images/icons/disconnect.png deleted file mode 100755 index b335cb11c4d1a397b307883adcfe1e00c4cf8e6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 796 zcmV+%1LOROP)h5&w{Y-QlBkdy7eSyz8|k(w=syt3MbOGZFmTy2f|dnI3kj6Sz)H!` z%1hM3FiovS8#Qs98Rxs5^PSs#9S4da6*};44(Iv3@B5rb3BwQ$Is?0$0ilY#Q^EELL=6SfS*Ly93GR<|lPYvfPXoM^)HN1)!-B@N5Zi(e|Ge`rl{XLurIiz-D}wH9#$=W{QcM8lDT(2e*5#{!>{kZ{#7q|l-hf; ze8Iij&%ayc?KR8ZUA6d;N%|J^oZS!K{4`2jUbXmP#li>Giyz*6`hE9>_q#5<+k4^7 z?PuTLeg0iK@7}(PZ!X^d_UYT7Z@>OJWUt+E?tRPRbE!QiTuS!ee*WXe({E;3+bwhU zy!!b2>DymM$!p>|Prm;6yKcqv@4x?@yz`}N`K9AGzvNCj{qp0lmmhwW%)4upxN7C0 z=Y6ZMW=%eyG2v{%)Uyq%US>`>RXFp;-4{P)zEj8|R%V zn0c*g(IbnT-LF3U`tbFSamsq5#1)U<{;XQ`&?w?egcw zDeKlAef93kpTk$*Z#(nOBz0p-&xvn8{~o%tzvDpCkKh0P|NqZ03Sc3i_>+Z^fngbg z4oCo$Cm1;XGjOUF87^~VVP{}iA>e$ng-LVSg&UedT5T)b`}TAweK^$LuI@IY=0~E2 ziw2*z!xWMZ@mp+&Xh@Hb(Y7b(v8Ex zVb#{x*A`VwIC1gCWfhjiMX%54u4-T85z4kU@$apzE0iPD7@UrDZuuPK{G}t~vGUpJ X#sY^DZe3|QHOXA~K?)NW2ZJ>LvSY_j diff --git a/images/icons/disk.png b/images/icons/disk.png deleted file mode 100755 index 99d532e8b1750115952f97302a92d713c0486f97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 620 zcmV-y0+aoTP)~H+MJzd|s z^YP1Hc07G_>)Lgir!F1{Qn4GcTg%?koHo<=1qRN{}nPDolOeI^o4N5I>! zU$N=L=sg~ zDx#dOA*B0N~cqPsWI(^rbbkh)DS0_H_UN0C4l_kvWIm2#Kyy6%BCh z(yIUf003&1xdx>t$*eR2ZvXxT0001Z_R$y3Iju92q*wg58};}zm(OaAH=p|y0002M zh5O5#fxp|~jc?yi@+7$`d4Q6Hl%z;WiWG??NXR{Hx%)pMd~SE0000OQI diff --git a/images/icons/disk_multiple.png b/images/icons/disk_multiple.png deleted file mode 100755 index fc5a52f5e4a7e8eb54bcd59728e88a2db5f046ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 691 zcmV;k0!;mhP)h|XiB@gI zjUjC!t---iaHXP+)r{6Ojx+c3eOp)#T8qGEea`PZ=iwYN#&8(f07GMovvqMO`yt0_ zV{GIqh=SUrg*L*EVuk5U_QA?{|KdLZm9oqA&I{b?sAXd2Gmr0G+E?`AZ62*91#}$* zh%tuyPiAI&x-YV_mTQj!pIA(Bw8r7bRXMZUbwz}06c5|lmvZ$Nsq_x5imrlk>1*KX6(-bq8O z2^19ECQj9aBx7KUR8RS!t_)7SYimBz-4JgeVb>Gt0MQyT5n9SDtu2!)2FyRdD{|O( Z{ssThAulbFM%4fS002ovPDHLkV1fh$IWzzO diff --git a/images/icons/door.png b/images/icons/door.png deleted file mode 100755 index 369fc46ed259191014664e8a16bea76e7513f8b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 412 zcmV;N0b~A&P)%thM>W-PO4z!6ryTDvQjnlZlgy>*`kliP$?n1x#3mBv=H* zZvSv|{Wk%bFo}=%C%C=cB-|2gZto+r=@*a)F<})kF(DFGf{cEF%qX{I6ar>BlQ09$ zKtwM=E70{BMdbz}7ZEfCIhx`>6H;PlIK|!Y1xVX8?flcwAM>e&;Vo+vaG^ z2pyX9GZt*w3IyWpBqouZ9TBDUCjj71ahpsggwSp?!_6p~6Ug^zToTz0k=O|cA@C)B z=4SI+2S7F9CYUB%6Rwf$PD%xpU1zsvH^-J3qhIec&_95xadrGMyZiUG;F`#)xFk#y zurJ!PJ?Af*(aYIc}SHy&e#bYkLxyZiN`;lMHCXuWKOBa9QbyiY}R8)+l!c;Lu zGC@p$z~K6Ij22J0)wsbx511;JB7MDISvY@^uJR9Nq@bi~L`zglHEQK03t2do(0Qs6*PW_{1G!HjEs!rv9U46 z$HzPJ|EKO<)u6Ypk6L#x)$Sg;sx@Y2o4k8D`Z@f|JD)qaVu_iqHj_a!UF&Z3Ql+}r bBu@VX$p^JhV-$eD00000NkvXXu0mjfw@)|D diff --git a/images/icons/door_open.png b/images/icons/door_open.png deleted file mode 100755 index 64bab57ddd0e95ad9a73a3828ec29b5d0b4dd675..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 508 zcmVjv0zFqT|_}Gg5c7fH`2AZ7W59X^b!J!cjQKk5f=?+6Od?2ip|XV za}o2aVlr?zXY)SuzK59<5o~(S-oAM4Zm-OARNqAS>D|jO?sih$KIXi4#zC#p8KB*6 zhr2T^Gn@5ikAoUcb$HCpdndR#asC03%nV>=v|23yQc6ob;v>x`Pk}_f8e)=(a71(& zuqvL;W`>(lMgvR>P$S&_bg(E|oK*{Mf@#6E0Euv?l<^#(s{aI-7D5%5GI0madt{~$%;b@oK6JNMtzMm)GS2eE@_I zS~TaE^z1tT1me$mOd>fuB1*9ukjYHe@2!~sjG5tP)N7xSr3G9P+3oKa++V)SLaGru zn`QvjgqvWRa7{oUyOUDA37GDE%9f3r>9Muk`Z$59p<W>iYj7vxikNWw_8sK+%_fnobvCa5%KNOO6e%CReDLPLmVwdHp%H5J z8cVW-n2=oPDz8D+5J{LSmLlCXMPg`l3MX6KVJNMw&n~!g&9zA<=CHFVyLz1l^k+DTiboyDIuKD~MJE&R)Oo;bO6gPHCylVLL*a<{&sTsdkI7k&ZU WO{4dBd(FK70000TwB_Y(k8yT(1{FYQ%eS|; zm`o-RZoVTR{e-VIhqwI*@698e;uMa`17cSLjDP=8fDVU4RsnS8Z94N(YF@*3(F0$4 zfa7WccWVI`$$I$2KUI8TegR;jN^7ao%gZYfmZXUHr+K`!3i#+L;%mCJVqO6-QJb`Wzkm6y zdWlr63*W^xBEov}S^$&R>(#p5?x)3Kp>&7LPwULD0+^gmrwKcHWY#OW8%2BFWlgZRE7!1(s^(^f!rJbe79GNxG aJ%0hDwGFRvSa|pV0000lQkd! diff --git a/images/icons/drink_empty.png b/images/icons/drink_empty.png deleted file mode 100755 index a40211ed412d95be06d475239a37c35fea158538..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 433 zcmV;i0Z#sjP)awcLgG1Ps>cqvbu;_Vq%$)JuarzB@HWl1!ZPF;C7L( zfnnMp{=@G#I2=L#pCCC))^Xy>1k(9bGie+eiDo<>3#hIg$F>C#B&%FfLPtmE4jr9a zG;-_{Q4m3n>C>c45seEj&?r%+MTanmAQ|J49v^ggr_Bq`JW!*DM#w+}NzbLsGCexH z(&UkQs(hlcVXn_1f*?uzfvMA@#REld=}z(wK;rh8c|(_Lw3$2sh-%+83%t?gYAR0w zBx>IpebHxQ^qXe@vKcLNP9XT_ljCh!!_LrUl~Y!8E6yeB4A{0s@_S@RP$z*(3_rfS z*ERu>_6-ID8Z@Z$!T^IKJgo@`D=KGHs4-;769x8Jz^zQ(5VWl+{_JvPk$HSoZ`Px@ bZR7F{-p6Gno?>^M00000NkvXXu0mjfT}81Z diff --git a/images/icons/drive.png b/images/icons/drive.png deleted file mode 100755 index 37b7c9b27d39acaaecf06951b024ac08afbfd4d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 346 zcmV-g0j2(lP)`6pHR4C7- zkv&QTK@f$%UVGNSAB4p~7X&kJu`rW(3s2w)1kd9QoMeZ&fx$)tn+OJimk zjCT$JD?{UrQ?3~v=-g&C?-zWP;E3TkpyGrhTDFaQSzpwKU?tq9Uh&CO=Y?-R7%>t` z!bl_(!*h(_r3OLS;FuM!k+?!xBDEihL=?r53TBrP2>202N!*Y~*dL6MvS5Ku!P&n9 sT@vv>?encL=G!4ixo5^&>-PTUFAyGx1U4B=kpKVy07*qoM6N<$g0$g{=l}o! diff --git a/images/icons/dvd.png b/images/icons/dvd.png deleted file mode 100755 index 9d94de5df00c518c84b400de7176f15843af7f4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 764 zcmVMI6@>P|2u(tv7b=KIl+wsgV@<@e*jCUY7=e;6+2+<% z=39E)&Y3&g&fIj=+>6`P?QFX`&qGIYeyIZ&_j7LU>vx{}ex9QMp!i!3hoiz`v1q5J zrk2OX#(tU2=D5jZ;*3V)&^yD>+0y!>h12O&N@ks8&IN-(#9}e*?d>6x$sn0b!tHip z=;c#!Sl4IJY6i-V0sff3@H~%Vv513%0}zNH2#7|b$mjDY=Jz4)bFfUm$BX9=Yyo#%fy_^Vi~$?>=7ebQy10Lgqx+IAtGPE$iF zm7BanwY5CZL_29lFjQ zCM5tP8H3V#SK46~Hk%C{9UVGFd3ibhRb(~<9FNE0^ZC%$*0xFk48y?V@xX4kL$BA< zViH545Y5XuGFZRgk3b-RNF;)mmX;_5kRsVcAVef5=jG_w@MD4TQnA7|E;L`+Jpmw+ z&7}Y}T982`mbNgn%46mSkGahVUVR)#&H2WW{~Dre(~oa! zJ}e1wsLs_D)K%4|=|$3LG&-x*ibz5_%J3Ro!V1=Xi&*h2V2O2L(fu7Bo}&X4B2n~f zU!$_RZsh1D4h{|~`=0eqfB0;K@28tW2w>SWk0ox7LRddTk8gBz6qV|#NtH^aJoYp7 z^zhOb?3 uWiDU67;9>7h&43TGxZI%!;-n8wEj1TbK{B5NGa9;0000|gmWgBv zDpR7;qBK)0H0N$^I%~R8b91_#dD(V0o!dO;?A*%V(AVA{@I3Iqdnq+J{!~!}5COmq z0E$xqoI)|ekK%=uT`n)e5o;V?5)R-pBi`5tu6RfkqZS<~2%#1iVOt}AE)!QoO7A9? zRXb{4h0l}^&O68?u42|sv<$mAVl7Tk1vLXU$p4}rgf@^)l_QgD}oV;_xh$+{;DbIuw8FKYTjEtFb4S$L6%RbDnz&ZT>rhahUkGcJ%$B$u?a-V9I+ zPBNuR@mB5Ph?JnyE9x>OKadwc)xiO(Kr&`>5Ust_c~7+8=bUBDlS2ky<0tU!qv31S z3XGsktLVli);s1jIZ3?*^}uBJnDhDIde4MMYleLYMo|>-fB#${3JswFKm%}mi?sC# zfNlVehA~sRr6ar$N)~z1cDX4rK^cRjTX_PZuBbZ zB%u*|baz<1QAuDmDY;TguV<#xdfL?hGqFwI9CT}P z+rf;-$`Q6DeebTjh57Yyg#aU#9>EOD7I1g$6lep&`KO EKQSz`C;$Ke diff --git a/images/icons/email.png b/images/icons/email.png deleted file mode 100755 index 7348aed77fe6a64c2210a202f12c6eccae7fcf24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 641 zcmV-{0)G98P)Az`{eoOom?Tf*9)f$7n8&|1&5M4#i^32;+&E? zC3Q;bRFQN#y*%%=_V)Mfa<$xe^kB0TO;vJPkN*k(2v-CI7)OaWj?&eKPos(H4wGh_ zIC;6#q1B5SMap5{(Hc0~XO7OfqZ=x{kupu8-H&9azl`L1pTuu^Znm3EA)kCoG=JuwsyNLEtY83i->Z~j3y~F)`RA1k>zTES07po!kBVS2y#L{jCt|CMY&v{ zxmqM|`OA#P2{R&)OcQd}v0kt6_Dh#`Z$i5_;q|93je3Q^PcfR{TmBHRmr;rWahz~G z2x-&;d_O~HkmKXt5Cd#Bs?-+qj3zOiUdU24KowBIUPg(gPNmxqX)Fiia~V*$y;5L( zrGNmU;81MA$F2k%oeUXQ@}N%bXz=qOij$4IYk4W=jfhDxfCz{PGXe-#ge#VfYTyoj zh4JvDePrW{lf(Oux2xG;VZmlSvDU+Qf@i=O!B`MLglhttCUHDIKkc7RvVeTifTlZGEZNAHZ7i+XD6HF1R0l=P zfyscSl7Z{b3aDs0m6Ms>RMQy=_$j(NqsYBiu(n~MBTC@sVniQ-D7XOPL4s1%z@zCE z#9N|hjR!nUwAQdZiP;?yq&uRRc&DJEnrMqqk0|m)F^Qn8x?}}ytx;sVA|RXQQLVw6 z-Q)+esR)vZ5Jso+9>FEb93>v#dzD8l7V^#ng}-dn>P-cNcgHd->U2#00Q?OKQ zcz8OiAj99uA_H|SPuZW&3N@X~?e9Wq4Gk3w0(oB67DQMxk;EU&)A-1l*) zwF(-Bfg`;q0Oz2az;d{^L@9A{Qbthn!_By>J%pVcu5B})M)9MP!_mWskZ#$7$!|}P z`+5u2Qa>-D{OhOAee6jGom7INCCqpO8QNurRMbW%$JB@W*x%C&Mj3iL2f>JmzJ2}B zsxKVD*jQa0xIB>v$lMc?Cfaft8sNECd2?0Pr~ovTHJW zhZo`7;X$R(W_se*OR8zHHsnH0(1X6wG?qmLRW8mX3QWjrC&-BgIgP4H4{F0Mkd5YX zg_2gTCQGcXb|K(*;@R7zNic|RhAfL84ObVj(rhejztEEy?Phh8hQPIXFT%&D_;M|!65~o_|==)((s!ROj<^0mjv8#Q4o4cZdw^<0!s>!kTS(r+Q&T!<%0QV&g zIu#0QcaBCa&9OMfMn}lB|3q?Wdf_{a%k)2VbaYTb5FW(i@x0&f7rVN;9<{f((^xEK z{hdR$x{ZuHCd=}H&d$yd%ex|q;;s4ldFSBZVDV4VRt`4A$DK~+WLsMsjYgxE&EJ0k Xsy$=Xcu`==00000NkvXXu0mjfruKII diff --git a/images/icons/email_delete.png b/images/icons/email_delete.png deleted file mode 100755 index a9932b1ad5ee05b4aa191ace4d859609098568cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 756 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 diff --git a/images/icons/email_link.png b/images/icons/email_link.png deleted file mode 100755 index 2c49f78a657c1ba1ec0ca6a28455721b20d4ec50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 821 zcmV-51Iqk~P)@&xZvixulsk-;T#44a~v_p20ZGUos{+e ziqz?x2bDc`a!X|=H&x$AMYoNVcg>OOowMZH)34;Je1??Brir-Kni02|lNTF@eWxU< zNk%>3@}$y)izYH)GssfVp3xDiE3_bkWMX`Nts^t6W3>pK-9Ht?o9O^7?i6NLjsQv?P*iV0iU-X5Sd9M&!sd>k z-}n)V&Ti=SdNj)vcx!UOwiJe3ap)x zhTreU^71mwW;2vMYG|~5SX^`qp4Dm_$qtT$Tu~De0*V@+3QHb<@Jz?l?%DX)jK3n%GeMWMRG`GqGK;aY9f#^aZ zOePZ?4hJk23kC-Vah~@swT#Cppt+@$Wc};h+}xV#>gq5Bl$Mr`=jZ3Ai;9XMkw^s5 zntHTH0W_NhILR;mh%Tj488#RUA*0aU)W&v_?a!!auqSM92 z#VeJSmGRoz+9WTwtgP$?uL8c_qaN+i49)%pyygIR5QP`^00000NkvXXu0mjf)cSaJ diff --git a/images/icons/email_open.png b/images/icons/email_open.png deleted file mode 100755 index 7b6f9813d41f1d95c8f1cf1495c2314dcf16d3fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 783 zcmV+q1MvKbP)FGA|gUiBpPKsNC^f4AtjM-BOo6I z6r`2%Aq86cL2037X}jIFyW8#V&zXS`i5Q*a$xLSEecpE_F9(1-jh2z%g|>+>+9xA0 zkA`ml?cS-I4VJBEmYFboVFjV6ilGGo&n=#={}R-6x+aGgB1p&v)GVM86wScQ&nTXB zxV()Yx6hm^cssa#jvorBcDDqH1WO7Kif0)qmB@%>Gn58D97J7@zwm_MRj>bE`@}Bp zw=N%IUV^D*3FYq{D0}w<#cynQ*tSI0c9ar2tzlGk`gkVb2Lt-h!U1+kCK~*&K_&Eg zBa1QAcKdbiwZ-XEGCIUmmSv@bUpq<3R0cN(WOi1<+aaYj^vwovvBKizD$OfKf^3*t zR*wY-2^CREWpg+t!?!14)f;1Hg^#T$ZeGF0j);QBIfEujA4UQ4w zNg^VWy=WTlU;>5#6gAADc`ObgsZas9yG=GGSPAOrw~1)(ceCIa2^Lcs1{H>cG-|sx z&^i^zCubH1(vjd+-8>UG_jIg=bbMYEQ2D`$>W=jjJZN)b-Xmkum1P_Y3Lece!FpJS z!>?lC`#zZ!Ci@+_*F777byLAt?~&jo5nMJ|NvG*p4yY_Uy|}ik{~@5z3VKO`8J7Yf zK`WRCms>h+q)5+>IRvcjsPGB~y!!?`1Q)?g*ou&Kgj7kMY4<4@AgvzQmr(HHo5AH2 zwR@tHqVEVPBc9SA${J~94M{}<6;sj#nUXm~5M|xA5s~vvmM!jVVbes;o!;2_ve8U# z#kiJNIi=-SS+z^mR_#j7w05;_TDwNLUVq4q`svKor(cqJzj!aV1D~<*HB>(T#!&X?LweP`h!V z#f5ew2F#+kh=_`{(2cDWLBy7tHkri1Wb7oF$^3io``&etX-G&e+`Bj&F87>!L{-_T zzWA|n)Q0xwK!hlEuby~r@XH;Es=BQ|oSK=Ky1b~fiyf`hx;lOJKmBOx*5ppyZNQnY zZ~pS#)g`UB6YVg?ZhbEqmlQM~s!=ZT#ob{;{A zoFhq;@h1;+eW88s^ed&e?78U$KQ^2*kB{~9*UT+WJUhs~LIDwr0&yZF>u%v)#Hr6O z@xq}3d-JPrPJB~-!^Z8k`SC}FO5IqAV@F|cf$GPfk;!B>jF!OSY(VC<nfc3_W}hQUTZitf6w{8c71n-2vV^f1S5q93fvQmQ1tj zB^?@`daTGwy+Hz`LksuJ_dS8xX&mZOe^A|Uz zL^d@{{_qFm&m3WNIEVD|XPdoO*#Jg|a-^R=%mY)Gt002ovPDHLkV1h-Zv9=jZ#r=d=hWyU?P}@^H?N!+D;^s4D+csb3rJhKW>ZSD{se zW>rw(t_Xc9oXqah$=UN}_66>SX;I;fY3wMNTr--k1NCS;f-gNFdDT@E;ZW@!9rz94 z`pq8AwOk4o9wZJjJRP{n{DzRK$no}>V__jrL&E}+cikkP2KLq;(930j?KgF*42Eki zL=ueSr;C(^N<6$hhAJ${3x(x^$utsX*6`)d;Yktl4F`2J08pVl$ahAX21$za_Y|qA zNoZ-!uw|RFG(W-3>jpRe1fRU2a#d#}o_2r$K!i3^yBV1-qAq6p?pnTsEn&(6ux0BA zYA11H_eteeBA&Lg3L-R-sYc>4UO%n{lLhmOJgTT0WpUj#Ai;YIWq=B?y6H6DQJ3FH z<-FyXApCh>JX4<@q2s-viU{G43p_<^ybjV-MKRe0D+p2*KLNZ=@Sm?@f=a}vunDhc z|De~7Jiw$I36cTq*AKvKhbngb4Sc>xs(LN)$RKux-m;9POQv3gx6$Tvk=PfwsX@YA z8x^??pq^y-7BlZp6V6?Psou%pl_QhRvTXe^9WEPb_@ddDs^8H)r*SWY6S&eneEb1* z)0kA2FuM-VGD^>{QhM39e?zDC{AT5$^Ja&5PE|E^6w>on6I28s4wrbQhFJN+t=`k@X24nQI!m9kbZt8EmoWWHeFN=fO8(U#im?Cy002ov JPDHLkV1hIwPW%7> diff --git a/images/icons/emoticon_grin.png b/images/icons/emoticon_grin.png deleted file mode 100755 index fc60c5e1cd0dfd034d9e755302c9cd163d317a9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 714 zcmV;*0yX`KP)1zIPd!!Rpoyw`fI~IH*r;ZRp=I> zLlsmQ7a^s>^~6cdZk{)rFL2LIrwX@BeP5$VcA&8uP><%8@Rxe=(cb`W z#GKM(=U}koJX*00zcGn~%c#qPDI+Lr#@K-H^8><#(bIM3^idIDM@)?>Gm+MNaS7J& z`83#Xhzn7l{{a!jl-3g|ZRP9O#jFSoJJ0J%0H8u|(9j>(7)Y1~x6a7pC6EI60xzC{ z*eq`C9X|X>#lHTyczOW>013a6 ziYkcELTMF}TV?ufHJAjLU*u6m-3q&Fo&q7>(^v$kkW-hB;T<&%?Nrq6!32@5`{G$& zc!RDDfhrIuS8 z?8Y3h*`bPE`v}YTiB=sTw={z-FjSN=Gid5W_!K{KCoc9qZheMGvWJpn8>lB-d`V&U zCXw=8n5yH){1jit2GY)Qx&5l9{+I=T+1n;A wo<0$}y{E$!z*)wfCFLvwhp+u5O#f2f0aLAAZZV~`sQ>@~07*qoM6N<$g0=}oVE_OC diff --git a/images/icons/emoticon_happy.png b/images/icons/emoticon_happy.png deleted file mode 100755 index 6b7336e175438cf27c9bcae4669f9711e09304e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 731 zcmV<10wn#3P)l%u5=V2goM%QPGY7PBv-7BC^0g7Fa2Kgj6IQyYY!iS>F3t^;Y z{`dVv-isd(F{Bofw-%8$vKIg>me+{)A@}VXl%+GsE>t2jcM|EqamZ6;kUSPnE=BU) zeuy6|$S$@a+)Ca8AoGfHhCIrBUVy*v68!x);UCyy{SEN-)*vyqhXD>Owvbo=q+gJz zCkOfU^N3FMBN+)mjLmJb^;pE?#E-YTSlnhTG?QEa@O-`cN-qPdAue>|r>37@WzWyjAHen>@2_o+^B&_t+-Fms#M`c+Q+AD=c!D9ke`XcB8gdE3DSc%8q5Ta3r1Ptkhbj zE|+PMsc9~kS|;Q?@=P-{qz6h~7(944JcROd^#2II?H{`{Mi`OA2G{^u0oZzC(E*9A zdxu56!SZE2HXG5RyErp*DLuS^Fkeyuk2a{4J!#<0c~wY`u8{|imY8C&ATnsgaRJSx2Pk`pF)tn zgh6HKa2^1?5mV!36E)%J_jqgPW>{0{L{$x0el|@3(ga#N#V*rZ3VLjB=aa@4_-HE9 zD<<_Ny7F*G?>1ChOz5*o=uF*xKHQyFmEl7gF5%h}L%A%niQ%GAym5)!iH_F=x*cXh zBPaBwNWTnjk0cG}v5||!uViyGkH$^obwTDD*3=g{K63QO``9^1F;&Y)1~1g!TVweg z?V?Obe=;_dNVZ4NrW$l8!KT_~?bvM7eVA^Qxg01q`pnuDMQhWj$tU!v%rRStYfsT| zL;b^pb9R(8UYWC-^(8D!bI3k*$2p_4cJ8C$3QWa!bVWE#mCiqP7MAs^NK*h#x5v3)74a*hO2#2IGU|6a_4}=<=OAUQoT>)Nu@bl24gB|k zcBTgaQ~b0o>r^BQjZJe7GTdx9vAu+c&k8{d{vzT2uvEdx{ zaRl7C>HwqVY>L3M)qB^nOlGjLJSsrp#ccLnt!5W*Vgt?)ZpPNnLVP#1JcY*|K z{Jqc^=_@cxD7~6Hb|W*4$@Bjfm>X9b8m~3vjd8_U`vSd#mwL|ZxqaYb3SfBOn(gB! zPxSO&5X4@vmnXW+%@11SzdVE4x8KN!2RyF%<_L|i#T)@+_g4iNy(rs*W6({5<%XA% egcZE)%O|3gTiEndN|D*|XyaY(;&r}kAo4Fy4Zr^Y diff --git a/images/icons/emoticon_smile.png b/images/icons/emoticon_smile.png deleted file mode 100755 index ade431851b0b6546eb6bee5cd85716df7f67e077..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 725 zcmV;`0xJE9P)L_^0`U`~aor)ql1d5Pg z6owrVjF7Of7j1n54cD~V+Wq~W=b7nXZIaQU<}$-D^Wh8g9iyuJPn7-MaF0z&l@1k7 zi;z(T6-GoDP~qCfbDCc}Z`LYsk4>`*H%xtJgQ?D-@mf%i7IOIIQNnlKSrOW6T6Aa~ zzzv!ft#0lKwzQ#%D*U(CNVtT$BA5z-ik%o65YF5q{4ms7cV2r-06S=ERhf?MznhZa zGrpJw`vq|!>WixoQA~L~vGVh0X>qPIVC$n@kA zgAe9Vv7m|wv0n;2S!@A_bF_Ik?_SL^JGp@R5EaWzcA1Gc%VZkUm>_}pGHl31$w(sf z+uZ2Ept_z!a-O424U9dTV*JG{cuTUO^>-YP_8i z`v#vMN1_$fg^2rkMu;VMV$!FWzJD?AEISTe*2Mszrd1b3X#X~G3v?T?bR#BKi;99M zL3}eC>Q11E<1D@G!$!0px~z-qtUQ0moD|RXF?n)b7)X-x9v-g}ON5Q~a~p7C&aIOn|YYgCp0srauA_td0R8BpPn z2tBHx!h{GTDqKz<)yndDvwQ>h)by!v&Ey9=O|}P3tOoUHEyR~z5ls#kL^zW>rq6x@ zxKVRVvwio1b*ItfDtz?~5`95k9ZV}h>t>7%h(6vSDn2{jeoF5*0d~}^R%JTYeJdqF z8DB4eT|!)h`uY!uD5fP(tfiZ;V`nQOZ0tC#3ju%%1Hs0jlqNu;0=RFCJ_tb?;2S)D z0%9w;@@stbp5)e{lz0XJ0ss+?m|QPXFQBf5isiuJm8e+MTlV)=P>E1m!7aWdp520Y zjx<#eVH+(Oq_&8PrMl#q|D0fPp$$dJroWO)7ikF^s0)Dz@9As;RH&(|C-4q@gW^n_ z)P@t}_jLmhPQNCcy2|=o5hVasM2P)7!BfE2fCMU*g)b}U=;|ezSxYjrmX5AoN=s`{ zX<&jR;^WwespUU-WW!gOL>?8$<*Lk1j#DkqQ7z9gJ2_4^Sp*G;XLe8vr?CwlHDxT_ zGwmXLNcG-GiG52YoFbfyu~<%n3Yp|Qx#SFO*$zzRAkz=eRh(tht_wQfG}8QSb0Xf} zf2TEn9AZnj(hGcT26c5zJWVXU6VE0}Zyr;6H*#|Kkly{x%Ck33zj&^+Z5!-Ntl3Vm zA^>r?$n$OX9iPXB3(j(W&qW>iV-^5DT{kK542p2bdwN_0oMpmUMx14M@1?(l>0jzQ Xr>}D#C{Y5K00000NkvXXu0mjf8wo&0 diff --git a/images/icons/emoticon_tongue.png b/images/icons/emoticon_tongue.png deleted file mode 100755 index ecafd2ffc542f88ec6e42eb7c57ee253ee7a3fcc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 727 zcmV;|0x127P)@Qs&9_62n*m}Y|JO&A-Hy&om}^zi7~6MB0IV8=~|D%HZa>m>>1 z@o5F@0^%~%r{5u>m|_=&;x^`akX^RiP9H-~-}B*?Y=@Dk2nqIPg@kNiRh7>~2S0hPs5$m6+LgMb;RDO$<}@1QWC( zKE!6cS$>1Nwl;~0x=;c2IqED?vnOk$Xp-X=5+rO8uG~&it73ER{s4F`HC|kZab<#N zJ*Yt?qrA$|v}K;RGj*!-bF4qyi59mr{rEy`GcNrUq?sG$Sh#jzw7Kgj6c%vxr}*Rp z>QYQtrcmz1vyuACd(>Zz9p5pmH-C%r^ffaep35tGhPtEGTM3#15Qob=i_@?8_++Hw zEN6F~)3HBx0buH?DT!xDgah8w=W=kC31=B|mXTfO|5B!Z(Kjm{e&X4d%*g-%002ov JPDHLkV1iW*MF{`^ diff --git a/images/icons/emoticon_unhappy.png b/images/icons/emoticon_unhappy.png deleted file mode 100755 index fd5d030ef773ddbd3f18925487a870ae7679b08b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 723 zcmV;^0xbQBP)nI31uuPEx(b2EPDKzMg2IC! z1S@@jQACFdqKw6YEZj=hS9jm{d7haL#U>dYYEHv2^W)FV{Ee#eKT-30!OfVgDx)f# z5TQ>MRCpr7vK;P}hO60nz*0M4#`U-gZXsRsl9|a;nTHdTwPU zDB&vwuq%j*P+$205yhlhNu+vMo;@3i(AGSxUjqOYMuWBsSxtgO1#qk6CyO94_?QRx zKx~LBy}(EB$aG%Fif0rc01#o&H1#8u0_w`BSPq^{qhe8SIWQ2S5}`K4Ej^>AaW~=_ zTo33X)quFA>X3>>U5xtpXKqm+BT*5E@SgVS8C58&t0eIbd`!4p;>FWBO5Z{dM}5Z7 z-Q7SY zRRtnU+2Zp(L1QcF+PCx%bW&eiMtlYJ5j$IwVVpI!Vv~gw2mV%qCO3uhz5jFCglR^LI?Ip4kMsCGM^*WsD)?OphMkxyJu0+| zkWd8`MnxD>;n9Ixn%>>-?4BSPc3M<;;#Bw6I;9CTQVwcSvx?mq!~4=dFG6=&hkn=x z2;Ms#TH5m3J=%p9AHrs*5N{0)a^Mu=7M{ZKUA%=?cq<<|D{t$Y9f1GdDOcrd=)#Mb zxLXXr93+)AoVj=iRGA*%B3=oXub(Fry}iDe-e@Z;FD_(}?B9Za^K;gRD$1?D@#%a+-~0vqwuU8or-y0ZV_*kR)~P8Gy0f#- zK#vhR*o+e@M@2ytHxegYc@-^gWo_auexB~edz#v3<>Yhcnphr})b-XzD$e1CU66pl zvt*JpERXch2R?V3?(5JWvjDL8)QO3uSA=$JNd$Qad`1JGp}?pA(u2Q*>0jyxXpdYZ THlv1D00000NkvXXu0mjf4(Upu diff --git a/images/icons/emoticon_wink.png b/images/icons/emoticon_wink.png deleted file mode 100755 index a631949b5126181d03d2cc657dcc36c0f2c3ae48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 712 zcmV;(0yq7MP)(qcS7fXtvA0;;08>+3O7teOQp%zqTvQmk4Dq@*%u_^?FA9et#8o5RRGs- z8Z=*jFWAS8b%g3KO_4M^U0l1vRYZa%HuO90z%HmEX@+J8GM!8d$d z06T}c1obiBW)^t)JmNrICHXBid>uMJFT&34P5LEvxyN0giU_IY6+8uOR1G02mTbO^AXBl*H0onaP>T38HsKXOu((2x zoqmA{D^LOV^%1CB1+X)Nq}LuKnx4QG=~)JNIu=IS=5aZKu$aPt&Jo3_ zUXu6SXvsk)AGXcggpL(P`gF&fOm9BgnW<=m)EsX1DL#6Sx)_trk;+x$*~RQ=FSBEP zrw+C1-Bnheyk(Ax=UQ1+OJ%rmAHkXc#NiUp_sKCn47C@W<>KK>+V{s_0C;!PWX01W u!ZGiubwzNNC(hF6EbTRy|ME=#5zAA1pKtV@Ea!c=%JBE6!+*Zrczrtj)3uOqx1+w?ivDyh;``H`|9*XZd!q2y`>j8o zPq{fm`Na;auQ!6uw~GD$_w&u+sDHnnzd8{2bbrVDb8TPluY7%O^{INT7l+$F-w1!O zT=&{!g-_QbzC1qg{l($GKi~d(fA!P#uus>+|9rjj_t&$3f4+Tvyzkqcn7=>n{r&m; z>&=i$lU?pF(SEVZ_4lV+Z%tCF$iDo6LW`p7(5<$N&HT8Aidtg@EEu7Dfh!1_m9F6F_-_fnz@dBd3hV zh6RoeTpun37Hm*p=S}!xB2%GsN>(9zl@H4iweC3*!Wlj#haUN`*h|{jWN<7##?Qpk zmawqs0!x>8vXF{_aD)HsCf8Xtia|ir6_cteb~+gFu`;I!>|qpOVG?4uVAFdM{QR&W zONNt2z@nss^K_X~eLR`cSvVIfMeSfTbmmr&58_**5um`{FC={>;XzVD=Tv()J_7-T ogaZvn8JQwxBtJeTEbH?rX5;20cPa5$D~HSgwKHzbjEoG{0NEsHRR910 diff --git a/images/icons/error.png b/images/icons/error.png deleted file mode 100755 index 628cf2dae3d419ae220c8928ac71393b480745a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 666 zcmV;L0%iS)P)eOSYYtbpBV}~vsBnU!_?2tr-P=|^T zED%wc9ezHgW@NMb!^uT_|SvCpFLJylbx zY%bpaTGI8IYXMN$9w<3j9VkA~NYOKEQXsj?6a9_hcwfU$acAhJhB)zb_w@MVUEy@S zX&I>K-R!bhu3?(6bHWIg$HEl7{9g>>&l_qdd+UYb(1~BCo9LptNq&8>!yoJ3Ui(i5 zRJ|XnYBklL!{@$-7=3mJ>P@1c=7Oc79e-V7yf+%lD2!I;Y&nXBZ>=B!5?CB>LvEx6 znI%n)qqi$#X#wKB(U7XP2P=+4{b@j#r%9-K(8UqtSDk>0UKzf*HM9yqMZ1D!$2MdZ zR=`U>0zhOH1XqN?nY@AQqB7)Fp4{v&dKXvb43hZKvnN8;Po;+jY*}~*Z|W9Q0W%{D z^T}Cc<|r(Su=1K=P5>Z4 zg`et&Va}tdzBS-G-ZcO)zCWpJvGQwrHZ`@wpM420ac@bI5~KkTFfGEM3sPWO8co4^fI6lPnA)Y{ef%@{+SnoUk0+dW+*{8WvF8}}l07*qoM6N<$g7cXs A&j0`b diff --git a/images/icons/error_add.png b/images/icons/error_add.png deleted file mode 100755 index 4c974840e957a8f7a012410b90ff06a055534a5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 710 zcmV;%0y+JOP)0|UoKa{= z&8FsYq_B&mZpt0E>87*hKHb{)+V{Wr9ETXWS}*)~Iqy0D-}9XJoR~5ld`QhI}Rf=kyg=`}az> z6_9YbOIPpz>6=3??LutnEEWbESt4dJveA!-IcBl=q-xF5yQ};Uf$LrUNN8S3D*2Ff zbrXRM%i3cFK@;Lu8FI-LxMy#JR_##yCLrM|r?xJW&qR@l7?7~ZSV6+xhV{>4L`-L( zn{2|(zGhrfoy7SL5v1)r)uzDtw(e8d{ETdz8%bvu5>_b@G;hAb=-4UTd36Cgx(8oe z6x7q#AXZnSLC#e&;p3i}R`Shb;0q98XrPydIV-D^%tSm zUxq-=O>rEfd`H~zffeL4LBfv>vcV0=+KF3yOwj$zREm=3`CK2oDueOV3ra~_rl z55P9C4@*z?V6ksEOpkZMsH}wOdL_E3Rw$?zHmsOxVLK4Yx!IzJX)B~s$7$t$JfPax s%FN7MvwKjApdjfaM3}Y5P)NtNS4FfTR?fV zd-U$^Je{j6ms;sQ$x0W9{2-vej@j?m;OyLe^1lK^PMq$}3&x@WMEwRh-t6*Cz1o?$ z>cF%nuOm281Az}gh&nMld>8cd%-U52h@9bipA$oD9`n;Rh6YFOJ#egzJJ9aSS18Hcm)GW2(nZvGY^a*Dk@ixapIxS$TyUW9VEi<~naf zFm{1`b{2!D6IX6cV&K;Zm@nFVL~V~yKksY`|V;Z_*$Z^m%-M)Z`*z%-lyh!i<5!3<%tf`X=mVpsf`mZDQ^xca3$ zm2*@k!+lW(Yxx>{D3kJC#nh!$1>$^GBwf%HQ#P_}ft=~M93TG)8Pw_BIl6BR00000 LNkvXXu0mjf|4UE) diff --git a/images/icons/error_go.png b/images/icons/error_go.png deleted file mode 100755 index caa1838d7f1deb211954f417f44196d131762a33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 734 zcmV<40wMj0P)B81U&hml7ftTkzJn#82Ff)=N+_m4tia#>Z zED;~bI?|((@r+mjthjMa_A%$0tfL-QbPg*LnU_WAg~uA`bk8XfVKMue{f|q-zK6T5 z$+$@!kfN4#c5k}DXoQw#g?X#j%8Ke&msn`eT!P~gh zHx954K@vhr&4ZG+`hMNW>{NV8fvu^oY$D5Q1iV26C?>7a-M}^ zf+7V1!ylPMVQx91B8Cg`?xBTxqe=5WDy=kaC@M|QuY#QKhWa@G0EkNg#f0(jFm#fT zq(fIa<`(Bsvbh3LeZkN_`bKD^)UAxX(*OX?;)Z5%EeUj&Ln?`^^>#>7P)wMLOu%Z% z#{0>)_#PZZQ_%FyFws`rLW<6?B9I~^a*dRT3jsj_aVg-iIZ@^~jCT_~7#@6%x*tZE zq`GHV=^FpWu6ko=kNu#n>&wdlL2&yUSp1p7YT&3fgcO-N#0$9Ug7g~-`rQ^qx~m@y2OU8A z#zh~=7n#Z$Z*fx-GOtDf07cgx0suCz_W(2~Y(0tf@FX@P6EPuM_dgn$vj9LucO)%W zw%HgMW>=#oL>nZ>M&NEf08>)#)k<{$fCT_r>rPi=BV=hFh6WS^qqze>C6Ek}o{M5% za|@JGowu0t{&hgNzySHZxy@LTNh);YzZ2zSp_ zl$^T&Dnc|NLb&RD_!4>pt@VHdP)ZGER%5ZmWEe$lryR&y;2u^3cOkO4#6c%-(EY6a{600000NkvXXu0mjfxS2AI diff --git a/images/icons/eye.png b/images/icons/eye.png deleted file mode 100755 index 564a1a9714ff37aee1c8758109113e434eff7862..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 750 zcmVWW=I5Rl}zuENrQ28Pt;CX(qKOcDU|M8F&Z%jVGSZA7t& zSX&s1bi|{*v*DgAz3ST9+K6Us3~0Q9*~BWe6PID=&0x|wWdf!IWgI(}6lv9v-FpSS zw1U9OL{Ex%ACuJL>=wxTZg0 zEf8`!jsrze5UvA~SqG-HeEY!{P)iC{?3#nq?S616TB~hnMW{0-6j9tLvf?&u+XiC{ z?O_E0jiYQZlqIojGL$5a1qk9N)mlxpmZq1W6gHT`ec`8K>j$jl3}`WfukS z{=!u2#P1a^U!H8Xl5T`7??NT1t zUc_pqB=&-xQ}oxwg~5^6HaUDuDLGXE;y3!@QP_pOFSc-kKKIu gX8xa5{%_a#2W_ovs9z>%07*qoM6N<$f|edvg8%>k diff --git a/images/icons/feed.png b/images/icons/feed.png deleted file mode 100755 index 315c4f4fa62cb720326ba3f54259666ba3999e42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 691 zcmV;k0!;mhP)bpQb1=l6TxbDZwj&S={?7%qx-u`rsG(Zp`-rh=e^=%((1yvsuf5d=&62Zj)Y zH&JviNS_F4_Hj|T(1j4$p-!}kixP9&dB4uv^MveG?dGf%sUCoc2!IFxD6wHRA2^dX zXRVk!-qSfk(jcaUKn#RP48(whfPlJUpApdrA!TQi_4D+fVoM;3I0gZ8{=Xv~Po;geVA+Em9@0Wq2 zr>OTZEGR05L=gf1T;ucCxq6Q6EgJiH@@-lVaAlQyw`jIF^c=&IVnj|95hHbE_cnt| zTzZQ?F4Ne@(bH(~&3nM%m)I@ID{@jJ2qZPjr)jhpe9hViOwH5k&|T#EmmL3(vHeUQ zq^!t^Al6JD;=mHq^Bg?J-8-zG2Od7gZbknG;K9czYjPqG*xjPo0k(c4%lPXTpw(qq z@aGMnxtFS(np+2kC} z7P02O874ZkJH$v#nCUVx$({yDN`IX@o2wyvTD#e`qN`_w5<}$3F+_kKBI*XX`r^Xa>XhWCbuJe`$z&$u+?!#3$#k($ zYR7OtSWq_`d@g`$Q!*K&ZitJ+5!`(XL1V(834FnW{-jyU1<<@%I!hcMIOuP83PwdK z*l+r5lmxLch5Ar*ZfG!cXl4Sq?@jccD}`>kRWP^o1)w)Y=bn%cFn5jGRP`5i>mIDv z2FzDFu0Fd+ofzKNG34TD{s_Gn3P1j6BN;?lB8iM7+R5OhhUVH){t}gE0;iXy(&+6F zVe2~Ed}_rA#R-PYEZsRSiN$aE&zM0T3!L_-$#*xTexwFS&LebIg|Kz|gm0{WzxgAP z+8bw8?LkA+?uyz}@w3IXZ=L$e>JLp?JK9_dQ16R#s!!&07-##4dm(}|53Gf@6rdFA z8GuCfNuhL&K=dI04?tQ!smiP_tF4idL}xi0;rP>1z;BVkXSJz1o%8PH0@!<3s4|Hq c@8sS41@Sp1TCQ_Hr~m)}07*qoM6N<$f@uN`6aWAK diff --git a/images/icons/film.png b/images/icons/film.png deleted file mode 100755 index b0ce7bb198a3b268bd634d2b26e9b710f3797d37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 653 zcmV;80&@L{P)WO3(`_cf+b25@DJ#zdQm}8GzWtq2-QnZ8W6mB^kfeK5f%S{ zUW%tGMCwrwic~ZrQcG=4f?5bkV+3dRk8hw6bk~y$KX#b!y*J4EJ~>;dRASqrSu;ZpM>?P}K~6AT zWv6Dmq?v&9LdXC(m%WCO6ma_di$R(v$@ad_>@R41N3N5lSJq9@6CGhX84-$%Xrd_6 z;){?{E|Ytt5$S-&Au>t4wDlIxdkfe-a22LMj``McG};r8@{GsRPm*+8fFey6C)@ifDBXVyTw(N@Xd41b45OFg6x_QA zpwLiigyy~cVoPxW^r~C7ZQpr%>1$*HKmv~AY-qJw4;gUecS--wnqslISSS=^KA&Ic n@BK|Onfz#3R%n{$a)0j^sqv5F(1NTL00000NkvXXu0mjf3S}fX diff --git a/images/icons/find.png b/images/icons/find.png deleted file mode 100755 index 1547479646722bda4647df52cf3e8bc9b77428c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 659 zcmV;E0&M+>P)IO9T&v~?D!=C@G6X*U1@h2}>2WE%HrrsjTfQsh6N9%SR25A5rkWp0g zzi;-6|3HJE;58sAyX1e@^d7EwiKQLb00%dp|5+t<{|l;G!D3eSuFDma zRCxr2MVY_`ELgLXqo}ssqp5E;*r|opZT~&|!~VN?1^mw`Yxp0VmiIp*r|Ey~#AW|W zTBd;IxVd?%*x1<_!3Ip2yP9Rn!u1aqt=siKx4a3At0%7dKV|u@|9wlg|7x7R;eT!K z{QuFp&Huxb3&AdAW?^~2z`(!^HUQ{cR*=op7H|BYU0VMi3A-|5H&#ol!zs_8lnTU)~3#~Ygh$29>KGa1bdH!g|-+n z%l(K(260cnR7PZA*&f5ViJWk2f?gO&<^&{{2pC@~psYOx{~+*b81ROHwh-W{t3t5R zfUAcy8L&$R7VqU%llVxB*$-TP4VVK!!+YQ{1?q!9``6#^&vyc*d<{N4Fv7TFIs?*V zVE#eNEVW7OU_j1YAe-u>mqKrV*3ZC0Dhr{9JVTgBH3a zw-MOd1e_w^+FNRU0B}<`6@-^H`-eRI8uYrge*@EsyqvK^`lfvjY@_h@W`KJMSbKop zAHe;7z(u1Nuh*cfdJEdlt!IEw0o1wyC*2TZt#4=mjuUi~!k&*bMpx`-Zr%6cESDIq zaoS|ycJT@Z=oCP8Ci0}*C*evrP)&0?`y^1R5;6} z(_KtbVHgK+*KHTwb z3U8KEr|M6CKHF5d&eQVNxr*Xd#pN8o{Cp0%jbBO9Pl3P2cIMh>fmjREstPwbsR%UAN&a~0&W97_+{w2 zzK;Pe5g_}Da_b3Y$=5(~fG&DU3P+ZQ@qA?rj`(8?e(XnAv>p1lR%ogzEDpDzrF16) z>>$A2s?J^XXy3bIMu@`YByICjm?Ii^mmGBZV2)~`4mZPIM`5A2nrR066HnGEYA&=F z{ItC{p*~!JTj5FqSfV=gCp=^dW8^+e7-xWNN zxg9h5B6J9LGr&<6$h%weF5k=nw=Wx9Cml;Jj>-7nQg?!GIQQV{9x_4d_iwmJ{{Z)# z5>8sc{Dg*|7C@Q@mHF%nZwj!Ba~VLi89@E#6*A|x)Vtp=Lby^Yqxhx(00004ivzpbHDZi=bC5qnA}gbx{;l2uf03R8|my(u#;mYn9sOOTwU8g0`)u zMs1^{U1LJk?Nk zB2EGh$v{EMs)*5?nf0`kfYS)g;`;s}c$%Q=0SvtPz29_|BBg@9=UTKW^CTcz2J}ak zE%aqZw#z_SB9taTZ6>seMLiDj<`?3#o?-KGpEX^S>eK9X1L%!J=m=aJWPodb{z7S;HU8`uU^vQi&Mg6L00000NkvXXu0mjf D3;i%v diff --git a/images/icons/flag_pink.png b/images/icons/flag_pink.png deleted file mode 100755 index 5f15e526c0a3244f5dca94d7d6f0eb8f28e99c7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 651 zcmV;60(AX}P)d+j7)2IFP!RM|;6qPprtQl^u+-aqSi}MFlnvfmsk?R-o-Gupj{b7%)rcR2bHge)vq!@bbYa3An=n z<*|lTk-eWn&pM#_2J}#jh5#E?Hqhx1em|E7pr|gu(nJS3ZXcC^EDmV1+m9pV!$%HW z@&OeT^{bRbZCeSMpit4>t>x{(+5)(Ts-WgpT|2$oPW9&jRr7pUO!00L?qAWVA3t`b!EDVfFf(juaajm2ewGR{_!ijCMa-%ku z>$op!<~*r02llbqYHiJS(kyd+tkv+ibN;>WSsXOT3wQD7h4Y^0$MYPXQv{%>ko@_!-JTr^1YfBMxRMTQ8AJL!*9Aeer6K*nRJ;@dF@_iub z17@P6i(vxv1F@bA`kEO6Us?`4JQ! z+XpBxssP=ppWO*3a76=;vz89E!L&k7RBB#s#=4x|`{;RWi+t!IE^*bqWO#wVi zZaDrJ`239IDQR~A@SPN4Q)MLfe0(Ho6*XLA>R!qE%?Pz?(Q&$j0%Z!&arDJqo0|XS zU@}q{la?&y6AStZF0gbbNC9Iwvjvd{hnLO2;v)S6++;8BDhT)x)T;{uW2MxECPn{*ELdZ1op0xyVpxzDdhz3h^YVPo^S(T97!Wp}{CC5s zOO0&MCbYN{*S_u5sKy(UFm7-Lr)M|odnZ1F`|tp z;QLC~;7ZS9V!0QqC_yL9nVW1CJTMZN4M(R$+ zOTZBsFr_4h`&3JNv0I_O8fwI~`z}0v3|$@I8UFpf@&;uE8s7DoF&~bRfJhmzX*a6< zs}(O~Kx~cpZxH}pS*S{qZRPWYW?G`zW8AQcn3#1@S*BcNV6f!zir{5lPjYZSt>eR~E27PJ0+es0y~s0ch&nN;M*NkCc% zXiQ#beHkC&om4IpK8qPut?)aNVjs<%39&#|d3=N1!OZi|I!ONj#Vr@M%?lVEC`+Fg zAQwL{?FfzVoB-$9WC=Ju7r^r86-w*!nR~wgLM67#gs;7-00000NkvXXu0mjfgI^=` diff --git a/images/icons/flag_yellow.png b/images/icons/flag_yellow.png deleted file mode 100755 index 14c89a5430dd9e34b445564c972634474d0aebf9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 671 zcmV;Q0$}}#P)h~F3KnqFOq_yZYrcmh=dA~yr_$e+EQlLNOGM%Ml;i# zU7Vw6Zfq9mSh}^jHcU1p^JCLZD)&8iwzFjZJLh0y1$p5v{=642&yVMMd0qklkxl-4 z(M8=Y*1b6uGPP|>4YuT`RLb%n4=(L%zJGQLxM;W>UlFiB6XECJF0cUu7*7+ty}2;F z$iZSFgb#K51w;U7TAHJ!%Yznj4XknkpGg9?Cj=tncaV(Pu*kZQi0HutwHVN~Vz#dy z?bmnnK*b+mb6>}?_`=jZ#9R*%o32OVJB?(ZAJO?1uu&s|o*D$)H=w90g!f}38ZYGW zz$O8p=(;nXx{H4CfX`SUBs_Xqz?h(#i-rRvaF3io=dD6abXW1kNIxP?iIpSj?Wx$b z3_jBy_|1Dc;0l--67ewKMJxQCo0xJ+mkbSu;p!Ft4Rlf0oS|{aQrJ-ezvUp8Lx_x3 zf|*qy86QQ=Pa*1S#uu{;V{K(HlSg^LnFh2}S$JV`x&48y2sa2SQ(^A?I@lE=Sas)EyF>d_)lVCHYIEUy zbsEa6J9wZZ4XE4CdrjneSRacpBp1O#uEo2il0@cCa0R6=D|ZSVWX`|hBK-r%dTNTZ z0=`-mC$j>CVtvDr^a`&E=)8S^2dY;CJYW8W{JA0X?l;dl(LPG4VetR}002ovPDHLk FV1l@oDiix(K@^6+>g^d@v4;gkbWsEoXE%32*i1tcpTNXd5CcIl)ECgqz|2rE6EW}s7R?kl za1q`0GCkMruC6-2LANtwVlsgzsp4?{@7$`KBv!G66>Vie3h?3OmEEkjwdLG0PgLVi z`!N((f$A@n17Ldj#`};0I3@iHJ5M{#IZz|UIYRm4(!uV7eYIYIwQf&}_2J~}>pQ^n z6o8--^T(=hkBNQ_k{-_GWE;FMW7!p}f{NG3nHZ{D5<3d8&tLh%a4AqqnjMkr3m&fkMdECD3N5}Unig5wy40;>lo4j~k+e}v)` zR6)J8Mk*u=SpB`p6o)7j?S0T@9?bz#m@l>gc*zk__|*!FMcHwP!gwLJvS~9c0px8E zW#NXU(rVJZ0_Z7&gXp3z2_(q;VkBGMmsaW16Y~9 zp7fgr29!F<6RP>ub)&O4fa*V43V`C3yGz;wP~!A;4tPPFm}sl;XZ|Jd$pb)31sm2?QX#5xu zDMxIG3FC+rZ21>aF->7BLCkLhiNJ=4Xh0M6jm8n%ee?z>@vSZsmO#QHQGTDG?-71; z|3Slt3Z$mMI}gV3jscN_SKq?<{>Mjwg2jd#=*TQ%RKcRuE)beKot?IvC(#|lF1=DdvMQ?PApSc z(OerDrLOlX<;5AkFU)$g!?9p2(@mCY5j}K^A z`%F()Gos|V2Oy!%=+bUOREP)Iz!8ao4L~j+rb@K)1;4cy?z}jjz=<|ot9ojHO7-2^ z`+I{3!zhCP=C$6fDzWuJ*>mjD0&07*qoM6N<$f)0Et AfB*mh diff --git a/images/icons/folder_error.png b/images/icons/folder_error.png deleted file mode 100755 index 1af8809513d4c9d70db4b7b91b28ccc8e960fd7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 727 zcmV;|0x127P)k#I6Z`-y*Ux@M08f%%l`nO z@l-64O`xJk`4{0rj^gBNYW$6$A&5oQ0giObg#;?wmNmerFRqL&f!YPa!aV7gQ~33* zfT5J{XKv&rjcsR%B~qAp1|l#14-k69lZ|9rPcN;iD1z8A!apyV{{Def^AYlcmq^zM z{^pAiC{+MejVefK5RK;0sDQdzB%ERX_b_W4yQtl`hv6@eNyHcMHGr_%2LY<$kZ=mI zQ;5wWHis>aF*}hXy&*$1-$TQ$)67hSNE9p|b`fAz4H4@8pl%us^QfCAA3&5LZg$f(DBDB;xHPT~|VaAD}{1e9QKZbBw*~ zMXcCm4YU$mAHIFO9iJnQ!&w5gNgG!mb-C4wrL6ZgL^9&m+c z>c7)*W<%?-n@u~DM8!T-E$^RwWp8&YCbk}uhk1AJ(xi%Xt_bM6v43>;$w!-F-cQuc zP~~L6BbLmP`#iu<@71UAl|IY`*6+XDT~<+4q$+i}B7&+m{RPs0S{LgvUQz%6002ov JPDHLkV1mJ{Oh^C# diff --git a/images/icons/folder_link.png b/images/icons/folder_link.png deleted file mode 100755 index b9b75f6c398044761b2e211639a3b3ea5dffda06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 785 zcmV+s1Md8ZP)aL6K`V-vR#JLK(X*jEKVNlbHxH0QOXN4CTjfvGt40I|M#Ku+)Yiq8d z;L28c;TGg(*&-*FfRgVFU3!q0bKn5y+w&YMOEeLrM3go2};w-m?^(jqeZAz2= zL*$E|+nBzw5`1~&d{HnejR`pp>Gc7meprxN9t68G0wK!~R}w-lLD(()XLo=+p9zi1 z=86KRES~3g$*>K{#fON0>%{i-Rcw831>-k@nY{~UrUN@)b%g6=XPXGQk0pwNVJV+w zqhRK2*zxsX)1w8u`H8F=|Ghf>#)>;2#|sV1xT0X_I4_<*pC+(CE+r1;*Z|TI8@M$i z*d-lO3zv}$G$5CpN9eh9kKmasBji}*;vbP^#=-v_K_>cy4EBLtz6Ex%6{+9_B)^|S z!hagM#0)}%dj*eV={z3?zdeTC)u(vt>V&z^2#3Rg-flhS-!~vKtwevfR?M0Edok2? zHY=CQ4-^D8DJSp@k{b>@wzk4zu^<|aA{-9Gfx%$lO768pBDvDi(!x+d zeSQ6SO-&82P$*DWS0_Sanxi!;puHu6!{kw^RP$!DnQ=Ou+itfTcDo&IZEa|8Zx>^l zqcz$?drJi6<>mXTtE;POYipO9nwpXtjfNv+)M|Aj;S`DEG)HT+hxYyg@Y?10VPWjL P00000NkvXXu0mjfBPD6B diff --git a/images/icons/folder_page_white.png b/images/icons/folder_page_white.png deleted file mode 100755 index 14d6b6181f0f43c24f05f9e06dee03d107b590e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 639 zcmV-_0)YLAP)g>C+WwLc_Qfq*FlK?}j&#@fb05W&WX zs7RER>}K7~?sqveuf<-nYKRA3hB+LbdC!>{CyArNId=s(54dp(7#BBzuaY8?jufy` zmStgPnpU3Y+S=OM1eO4Q9AMSVG#Cuj?RM2}x7BPmWoGL4``X^#-UOE1F)gf`*=sW+ z#)z3w6a|Zmi<6o(O>cSr6G@Wby(dW$vMi(1>CkGm4j~_2th}9>UtV@@nkAk+xY-;z zAxV<4E1Ywf*&)EmU%$NexaOQ2%~;?ZS9y7HsvVLf!8teCPXL&5Vwn{`9ump~{5;Mz z@X5m8Gx-NJ1XRw)P+&z3MNzfi)BpaF#%_}@J99_@SqVgZeE}3mPMzk`-KQgf(~Lq+ zHE^grpz4XUYa1-47pTvjWcrrICx3pvKJCDh&Yol8#yuc{goqS7_vxoKQ21lGv)3LW zi4Z~$2q~4MkQ4jwQ0So0MYd02b*e#*$A(}6F$T)kF1@{P%ChV>&`c?iq7kc~$T~xa z?Ngt1kh!5F8K^?BqTZ-6lX;W$X4pb0IRdg4vi+e#2jXA^>!R=rg##3GP!2ZvRHQ0n z+xmO;s&}G6Ym@RLIIS>4_D^{q3B6vEDiyAvGHkpeHC#BN8{LcEx^4hiFz_l Z{RV0XY_dNf>kAEsD~v-EDXG-F<&OGY*S3BA8_IBr};$<~uWwQC0qBZ|>xVQt7^l z(!}S1^(Ske7UmrO!!*&y9esxot1o`frT$hpelOdF<(SuhxF@%42a8v}$Ue=tpKj|i zSJoV=l>yA3B)qwui;bhMadW1l=OAAHHe4+eM-Jr=5AX{Qu#Kwt)1rTrQ2Lmhjp8jP zH+Y8bp#!+g5|>7BwMg&ky>t#7#gEoH#aTIL#%^zT*4jBdY|KKIQu+M2lxi918`^q` zxNsL~Oo7HY-TQfUKTl!e*^xaL!s{uc&YFR(SJTEA&}K2lkObfQ#%^wx%H%_*y=xG+ zeHiP%r84!L>X(m_XDg42mH9<57uvZ#BxD_sWQ^cxj1EfBR+Bwu#k>EY3;HCvld{k>`eEHOekrZG3#;v?6H6fhbs1c-xE%qmL1FD6Pgsp z%Q7MO@KoovHHK8U1J?_FIzK;SjKg2b`K_PgZHE@VJXO=*(cIEX$#{4s+#sCnPFUw_rU#+IR6UWkSw_(UZ&g zlAKBNq7_M($idCjGh@|$KtL56ha|q=(R5;6H z`2YVu10|S&W(GL4-*9m5zR~L0cWa7s=goeHmKzfsTW-vJJns=rXO>fi=YdvYp=OyIuL^83ysEIf(LtP34vHf@P1syLa4L>s)tjLDRY?|E+S*&m<}gEDA3wCC|S1 zC~n%F`=*)aLx8xUX62**Ryh}!5;VXx>jJY=!}V2J^Y4E*NjsaSAA6F^IPpwJ<+6wW zU8=5LQujKb`Z+F#fckUgU8t^YpU|s(=Orx83-p>b9R3rvXOE zXGG&B-+ooO{Lz1}<{Ou-vd(X^%s98zwd(4P#ubnMhqc}OsqDB<8mj>Yv8NgBOD@j_ z`PDq_3`$^`C!g6^zTp1k={a?|3Z-|`5HYOAUEHcimi|xPlFJZ#%{{hX{-)aXO=~Z^xE1+b* zM@!rH@FJ(e3$Fs}uKo9|x%%HQ^w?fm%Wa0V&kJ-j001RVucl)dd}jav002ovPDHLk FV1mw881w)D diff --git a/images/icons/font_add.png b/images/icons/font_add.png deleted file mode 100755 index b709ebaef4f32cf6551275bbcc3413ed5f51b75a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 634 zcmV-=0)_pFP)JJns=rXO>fi=YdvYp=OyIuL^83ysEIf(LtP34vHf@P1syLa4L>s)tjLDRY?|E+S*&m<}gEDA3wCC|S1 zC~n%F`=*)aLx8xUX62**Ryh}!5;VXx>jJY=!}V2J^Y4E*NjsaSAA6F^IPpwJ<+6wW zU8=5LQujKb`Z+F#fckUgU8t^YpU|s(=Orx83-p>b9R3rvXOE zXGG&B-+ooO{Lz1}<{Ou-vd(X^%s98zwd(4Pig^qE=T46QpVsI9KeEN)lV^oq4T=E< zv8NgBOD@j_`PDq_3`$^y)HdH}T%GuT%ay7BFFf1zzkheu|L}g@|K{0}Jzxd;F{ikI z(c@COKW(O z#rEI&moVY>|A6M}Z?yxC^eQ{;6;QI@qowV8c#%)F;s0${=KMznn=VZS89-cmx6G0L z-n}d7fBUWku;%ui38*e0gnR5;6H z`2YVu10|S&W(GL4-*9m5zR~L0cWa7s=goeHmKzfsTW-vJJns=rXO>fi=YdvYp=OyIuL^83ysEIf(LtP34vHf@P1syLa4L>s)tjLDRY?|E+S*&m<}gEDA3wCC|S1 zC~n%F`=*)aLx8xUX62**Ryh}!5;VXx>jJY=!}V2J^Y4E*NjsaSAA6F^IPpwJ<+6wW zU8=5LQujKb`Z+F#fckUgU8t^YpU|s(=Orx83-p>b9R3rvXOE zXGG&B-+ooO{Lz1}<{Ou-vd(X^%s98zwd(4Pg-vb$w*;&H+vCLYZ>KBsBOtCoF~A`9 zG^2gV<=G&=nx~yX39Po5?5pQXZ2o`W+WY_CwH^Pzt|v5TWziw`K>00000NkvXXu0mjfI;~OA diff --git a/images/icons/font_go.png b/images/icons/font_go.png deleted file mode 100755 index 75eba80d629fdc8279afbd40369813bae7548a52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 700 zcmV;t0z>_YP)!+vDhPTEsU#vi5`}*=t3m zOG=I7^=;SgcAeD!1Q6)vqouCPiA6pkZI#eMm0J!{NC4PUm?hpST<@&f1R)!bRM!&q z1%jTh#a^c`HkBT$^xp|cDKystTu4&1uL89tXYt`@A7Z}-1r^Nk?%}ew0N})}Vd5!p zh06{&eLcPN&jvf|?%j_t-4wV@q*jnhLO~T6xa3&3{~%b}h$K&2L(~1#$j-4MH9=4J!Xg9B zNTQXxa^zxPJ{1%~3KZm(p)l_d4to5^GPB{!Eykz00Sx@;|CVORC)<_j>Qld@jDaZz zDi|uf)y66RB@EBLNAE=UC=&?9!`deQ+r~hj#O!|0q+V2YspRX{(Sey*DD)7U0gFG-KBoQ_9siFug^1_c&;p}KPtTA-t=?j zX}kU(c=7-0nWMgw|2|u5eRM%pXLHD|P5W2YB_>WwxW7a>V@0H6&Bf^D|BBZ?f4a^j zWpP;Cf&bHzTuUb{m~`}iYV(QZRgSgumM<+1?L1q0^ZemO^EXecDQMl_RNqrNd(+)B zYbHNkF1z~1-0!dMUT!tpbp7xA3pMTYPH*qa{{8D$-?{SADNiQPYyIR*`lbb^Ha`OhA;nbUv)NRNsLLs z>8yzvN4KvzyKhC}_W#$G)oi@Fq_pe6(bdhfvwXrPhlFkUU%jq8cGLg1@ zJG%DT$(x)b*osvKEX9>3vVU2%K-j{m8r{_BL6lx)eikKeLtQf~N60vCy?)KI1o;my?xw`iv*B^i>G6pW#s#ZpugqTG}pR&(!{h)6&RI zO3L$@iDKh}lv7igoMJSUo;xY=@Ud|1OcYjE(p8gNtD($vNJTcx!er9Jq)tJJYza3e zmX?c(Vrd)pBse!d?3dN#5p*g%-p4MT%K0czDC4lWMaHWX4Uy>!`0bLm*)*0YbuTij K<78uDum%9SkYVWn diff --git a/images/icons/group.png b/images/icons/group.png deleted file mode 100755 index 7fb4e1f1e1cd6ee67d33ffd24f09ddd5c3478bec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 753 zcmV(G`SI(6vnfMgxg){D+Lwutc1Si0swhN#FwOv#}l83ts6rCW;r!9Q9l zl<41549yYiq6clJ;(J(YgF_14nmKFB@QK(mo6I~sr{BJxJ$rsp0HSt^ntND0Z;o48 z>O2Ckm9}n?$F`*>$L{;{zT>f+bCm7tpaqw^4q@%k z&cHHt3=3xZmt6rQ_dtDM#)Xwp66-Thu=<9?(zFvpy0gAr0U4Z3smE5f@pZNr!NoqT zEjSPuCQzMw(H;?yvf{+e;!7(;4hv)+d%cjKFiBL%egy0aeCof8z<>rLEjMsF|CBRH z86WcxAYvS6H;Yq)jY1Z-rrjWiu~m;clLmJlDAE7UhMJ*jBxp}s&nQkrZvqDXxsiv3 zSJ78>4W2GFIu$$+Ic&5Pq{1?zhIy(24enCZy35e>z6~XgVx$x%k(+>tPw)9SL~R?4 zs${`1bqjTFC3F)dxIIw>)!QP7$vk+;^#2c5r{lsjtwKYnfnn+j{~{GK;|I8rvPFU z5NbS#W7m)ofjNER&&ggR6fXi0xd4%4143#8JZlhXW+2TN#8b=5@L&-EUlY^cTT=>w zb_~+jfcRCYfdj}H0J49#sP#gtxE~%YBJiQ3AjMgoQJKuMITA}Iz|zizG7pw|7R*XF j=$D`QjOCK>V3B}dL4UFUkhgq600000NkvXXu0mjf1x-zB diff --git a/images/icons/heart.png b/images/icons/heart.png deleted file mode 100755 index d9ee53e590a68a95a9fa9483f0ebd14f3f25bb72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 749 zcmV{UrO36YoGex>*KgTU04Sb0lNGJEiq?mmQbVHD$?08PR{#RY@(Jtf90i82`&dI!dW7jO<!P=IT3`*tHLxxjwl=}>+*)uJ zQXzyPPN^^yrLNn-L6|)gDrKnEAdbPP1a+KXt(F*+N-)2L{Eb_PQs+ab)QQT6Pw(ST zBha=K(orHRSCfHi4O9%(3e<(Lb`^!uF>+VB$3*L{zr`0-_;)Y*n?E-k7dr!rf-5ve?cY>d<{Q2T>(phfG`V$89Qfr0$5PaI$GcI;T;lseVaJa_ff4eP;K@^|hsa{cCz zXuY%j{{3s?^}(OQ^lJ0wCa2U<(RxpI&Wzye%Qu%q>x1omeM7&Az4w3Z$LrQ@df3^y f|6iKmf8+cE7K65BSFA1B00000NkvXXu0mjfxAtvo diff --git a/images/icons/heart_add.png b/images/icons/heart_add.png deleted file mode 100755 index d4195ff80251f62483a2759d15559b4393fdf7bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 820 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 V#e!%4{UXjQawdAzBsefw0|3*!Uey2q diff --git a/images/icons/house.png b/images/icons/house.png deleted file mode 100755 index fed62219f57cdfb854782dbadf5123c44d056bd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 806 zcmV+>1KIqEP)v;U&v3%|^C`Ga3?LtY&4dQB4Oz;1v;J%z!D&%WRH@BZ?x; z3)8@IUIv@hG|@IwyHLC`l{1<4BK>wam95g|i|?Cfzt876&-Zx_0f5*l-9`IJI&mHu zE6$@xB)6N}7VeR;!X8D!TAw;;&0Bsj?A071cO>X3K0wl7WZ1;Tg!4LHyNcnzoeQ7t zNW`aSlm8WXYkek&ir$13=ngczvf zV0vnjNpCF&K8px}dunv+`LIb-sOC$_jD(;IBI$xC|7`(+9cA>Vir_V#z{?k7SX^Ah z^71m~W@q439Ycqfhi7+gp#A14n1n1!e>$EdeATG|f798Y=ggzwEKH2Q!qU2QA(Se?dwqG69%>n$6rtE z%F(845Az8c{w(XgimJg96!jLMz?zS6I1HUm2baqQx7&@nx;lhHA!r6vs2|fqJETOu zLxeu2OQ(3(au%dg>AcZsWI(zXn9XJg1cLe8k~0h0wOL=&HK}7X k{AKr*U4z7Szv)i%9gTgghwgU$Q~&?~07*qoM6N<$g31kYk^lez diff --git a/images/icons/house_go.png b/images/icons/house_go.png deleted file mode 100755 index 5457dbd3cdfea5274b7c38c9373f4e838993416b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 861 zcmV-j1ETziP)XFYYOQsT3iq4v1n+*XGK$uN_ml6wuh-}MeSh~Q01%s{EBOdX$6CW< zSZmUq$gTEm39ESwqbA*Pu_w!UQJa0#sLgdF|4X1waUf~Xq?55Q-js;f%_-2AhoZ0G zn5nPOll-SZljcbFWICIM3lC zEEtmy)1j{jgI45)$6{~jDx)ygB0#?)5-ogB>R!4Bxk1pIqzj_-#Z594E_n3B5+myaFFO8t#FTCz}2nMbp zxtjxyA`V8Q5uw#K2vqEWU+FG*$*d4pe;ieVLU0=WVJF&w@Y(=4@$A17^yGm+h3{uC zp}XNE&x;Da8uXRR<$jPzB#=s_pnE}aaWNe7x364K`oT8Ga>ZTXFhRrL4qUPsAh!CZ nf5t{Y%+1%WmpxfLca*mw0K_85Qj7(Qf zhc;c}922^zIU~GfWrBWCw_J`0J^kKa7w|$a9C$d-dCvR1=Vbw4?T4%U1l6aETXC!7 zqXW8xsHf)iil^=jb(r=5(N}Sjq6b4hD<4yxa=d#|fk2BGL-nblAxj$dUjw%)o*K|5 zgvM+FOm``1s4(5FLGW1({Ei|F)Tf8shIHys1GnZBHK0a0{7;Xq41f=)fXY9Tzgxp?#X71r0+vAMa4h51=@YR|!G z6v2B>frnM+VJ(OYTZFL`Ysio?9%#Gx=baLII2%)wZ?Unl!3_V!{M;-Y(lp#x=AgH+ z7_HJw)No?PS#+{|k0pJ_*DgVyk-hur#@ANjK;=BhNF97xm;ewX0wm(F)*9WTMmZAWBP1i2yR049(5W%od~; z2nCSH3%7_#rMmJviyr=}?7xB9kxGav_%PL*7z46;PEHQIUN0slCgAh=(9_d{Y#tYN zUNy6Y!DIl7zIo(=o%1Ebm^_|ZkQ|kj$##iBNl6K~TrPM#9>iiX15$Ii9EggAAz~mc zlm6V3!EySCM4}Hin{BhJt83lqbTV&OsZ`8QkeYC$M>Isc#~>yq=15jnRzhxW?vhk0 ujVKg~D2*QyiR226Y`XqNIMO2;qWuMC>Xau@Fa^s10000aI= diff --git a/images/icons/html.png b/images/icons/html.png deleted file mode 100755 index 55d1072eafda48abb0a5fcecb98b114d866077b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 578 zcmV-I0=@l-P)dis)>+`f+#3Rv=dSV4I&~|Vk?LiBG~#L1X~NSQGbAyogj#ie_$n8 z*oYwUieR#5zw>=_v)By?+NE%sVPM|5yzfjE5$wfk_Go)9(A<0e{hvFiJ0eb2MFf%t zDJxl&RDw>Nl#~WweRba-&_F#fn|ifCG!S=00#QfIDe64k{5mZFusu=CnSq>Qvt$j5 zI$4b(K~|@Tvozn3#yaJ|Be;BKfh@+AwFR!7UF7D*61OfavvGQ!VN-Ga+zO*%#qEoS z8E0dX4NpRyRS|XCrXq{e4r(61{zg^7gBPDUwmjg}k(Q%NLkD6fm6*tZ=)6^ARRw9CNHr!!-b)EovamKwdDMpr>=!|-tf?S+boQE&JP}G_9P5@nR zSOjlBPI$jHA&U_KsTjQko(uJ_ROpKn!K^ckXTHmZd+_Mh7C&~BUYvvb=Xi2w6%i+L zP+hwJF0QUE^66)$h?CXHvdjEbu3a_69GS^`e5Gac*$0~K9VHcGVKhe>RE(rT+Ca5J zv_?D-3(OpKFrQAl`$E;pyKkaTN=V?@iK2u!kqwFy=F?aM-2b}R>c4;EZ`t2+*gqpJ QK>z>%07*qoM6N<$f@8}2CIA2c diff --git a/images/icons/icon-recommend.gif b/images/icons/icon-recommend.gif deleted file mode 100644 index 0d933d4bb1f73e2e9f99b8831e407902ceb94906..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 85 zcmZ?wbhEHb6krfwn8*ME|NsAI56l9Ria%Kx85o!ubU>mYc?Kr6IsGfub_>n2HaKFr jYHxmZXU06%v_mTwrn@KI4BK>P$}ZEg%d1|CF<1itT80oSgT$J*kO*Aq9I~CW*s{G*(t$KS{OS+#aO%?udUme<*TTEO`Fr@r_QT zk=#}u-n~>Vm!+9S1PE{@3<)G~CPb<$Za;W?3+O}|+q)?*Pn355=}S(XIZmEANjZci zf5 zj<%@MX^bD1^BwlS^+AD|$dm-1wial0hwPI;CDM?Y9SXW#@w-UF0SQ8OgplRTleOB2 zUjkDS|0U9pI|lSN*EvXUa~*UIclJdZ#)Npbwh9>YT?Z;=B8|l&^t~P~om?<5Lre$+ z;%`P>SL7`djY#8Y9$wv9dv|3p)9Ovu3r^Sp@>J&i__b$%mxew<#AEK)K4_tuGzR_Dj zPEIW+13!^2!Lpmfum?NCj6AtX3WL`1|z0WJO$R6%tkR)SoHv)7)V z2J!;SiNK5OjY!w+2h{D`h38lT^}tkNg#0yvV}#EiXX)>`NH!2DT1ckB7?;L|{Tz(8 z;ur_j0K^3mj0hqIV+lr?y8Vsi$6LOTA8J(bfmHy@>b zcO$Rop0fUa(vNo6-E;xeS_D{{pDQU43O%OnNC$xlI9%J##D`I$O)boS8oT7?XD#2H zp@F_)^gFKH=_e!=bR0Mbz~#1kjL!}OW4;TpGi>5Em#V5QmwXEgf`!BCTAaDqG;d>5 z^tO*M_~HzHzE&w0V25WOoga94ESc3NYfJ6YaewCBwAXT|mGRkO%EV>r%_P8({OdYL nyXyvlE}#-v1%_wt#(IAOCI8(qh6s|AZQ;I8AMQ)(8AgTxri_~QH!8j7P*R` zMc^VU=$D{HL=sFyKO~Ajq>MlFfA48AXxr=Z6VbHN*b1^Vu&p;5ljX0cxTq=?a5f!hw>Y;n!k*~vFnseWh_8s^dl9C`3w#?js<@l-uiyFgp|$5{ nCx+WSD{<@TkixBf{e_-iDvsiFH^U=e00000NkvXXu0mjf5N;`P diff --git a/images/icons/image_edit.png b/images/icons/image_edit.png deleted file mode 100755 index 0aa4cc6512ea19fbb5241bc67ba90a9f8243c960..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 783 zcmV+q1MvKbP)5LVcnTf5GZ5SK z3kX3yRAdV+P=@A0X4ocLjyN{1GvCa2Zx4f0Mm_b1^KcIL{`sAI&kt=e|j1aOt8IKFRjAQ%V;Axt!&Q}+Z~gVtlY#!Wcv zuDrJsNE(EPTsx2x5C_g)V`_dDwxMvf4bqPkBtr@eDfrsf%!$MMiMv9iS{R9elqSVR z)0tPc5JaRzZGN<2CWLZG!mX&0p=0>~b`OL3$D@B9k<{xM9y~l^u8U0nz0Se4#tee$N z){M2pzFo)T6MSiGBQmVDbov*_F?_8-8Xlx!C&Nsmz|%-Y$y>6D))DQ#gs}Rt(lhX? zJ}!P(GQ9L)ZM*!P;CBTF9ZtvJrWbUN$aV3ZxD%gJ#8B!E^50fauc z(%JeF*;-Bc6HoVctJ% z#J}bQxxs95eQ_-5U|T|`2qxI_#-5W8myg8t{8iDA-)X%=;eu5}di&_8f3NTO4h{EI zwYbm%fNg=-My|PRb|Kn|y%-Jk?%Hsw>EplF`6o(16g6JqaoYd@ N002ovPDHLkV1gC;Y5M>G diff --git a/images/icons/image_link.png b/images/icons/image_link.png deleted file mode 100755 index 4bdb3541ecb728c1e2b0bef1b0546fa0878c99fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 773 zcmV+g1N!`lP)a^7G6T^gLQYt)lJ)S*4dqT-(Sy@A_4#a000000OYX$@Tp_vAnm)d zTn=Ab0RTV+0E`r@8*%c}_x2php{&yWw_e!Z+|X>MlyZSU1(FCNs6Z$OtDbrDi-S0n z!PBFmCmmdyTk*4u|()Gt$l9F|wevfQ0pZ+G_t zlWJK_L`lj?NtTk7GFg@xs%5GQfE=JgQ4AX%SxW=}000Pq069Q~{%TLZcb$|(RH`Ud zRVE=K)KY1%x-6mskOM?;d8zI1OH2CIKozBbR~D?6w@H8v#Z}k4OGE}B2Z-R}!VQKl z^neJWDWV79su3411OUjPLIhcD4HaekjK=C8S{rWh``jhH%@0e%ql)vNnc33t$;lIL zjwq(4rs_FB1W}b1fBoFOw}w3j59oHgw$9D@>WA<3t+DT^#}z}lPN!qd(9gqP{{%Ixgy^BE)% z9@>7F#!c(NYp=hf-yhh!cdyCGNi#Durl+U%2Ln$(`!X0E9W8QLHfXNm{_+qP}1jg5^>)a&)r ztyZg96h#f$;^N|Sm~S*1r!lm$vQoC&?aSS6_lf@j6IvVn17&DY00000NkvXXu0mjf DgX?L9 diff --git a/images/icons/images.png b/images/icons/images.png deleted file mode 100755 index 184860d1e0b16cdd0698a884186aa27c3b685106..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 661 zcmV;G0&4wR5;6p zlih36P#lKyR|!_HEbWGst|FC=iQ<@LbGEBn!qA~>^`=bSiulnBr?QncO;#pi6;Zs= zE5Qp<+)W8it;X7qG?~p1m)CPnztUmZ#RJJX$@_cqa>9+wNjCzsvg!_rnj_d^tc!C} z)Q@x?#ZBGNBVH`Zj(sOsLg54o9R~-vBzft{d=Q_JF@P(P4aH z5rNrN_=Fq|1VyW#8F!Fu(8+xAESBFc;{Lk?9=^Ycld&v_8TK+`0d=x@@j(PDA8%px zLle(T2Gs0LSit9aqRaK$cs>_Jscym*k~J1kA&H)AE}TlnF?=b7!Sg8)Ww^pQID;9u zC$aGm@=IlOFc!dpyQG98;>{t z;K|p&h|8~-wr?s6WqcIHcEDgr+$@!=(1_vy38012hx0`X`ENTN=o;1bhSJE71W+tD z;G84@$9QRBXj*jSA^cvU--B7JvbhUf_1^bP? vP|eszjZh`mO}g5B1MG#;NxNxl+u!*If$Q>9A-BVme|mWaqy4$_pJm?y9KM{-*hp?1+Ey3e-CEDooTa!B;e(Q>TSF?bj>5At13y1p zriN3w3x~5SfZj{@J4M{kp{?=M_Lh2bV+5LH)Q)5W!-ePA$RgE1@5f1cyHki0Y}JyVEYZF(LD$xXlt$7A5CgE@ zpV-&l%vf;=5kZ2-2gi@Y6J&=cuwt>!vJ^#(&n|LcZyUzi6Duj$$hJ1s*HD-#;k-w@ zpdrwAuoDG_N2bvb07G$Zk*?Hc)JLtW4yqOnic_$zO7NZ#l>Fm){;fE?b$IbOaX2fe z0la4g0Dfw2xk7Wi7NapVD8YMPCZu?A1QCK*67dgsvRKBLFtrM>?$%&_lD1882mzdO zWPdw5KWw6IT`m1b_8=lS5jt8D3=RDa=&jWzR-)S@56WMslZ~mKu1)-wpXB>rNBQ>N zU#K`#1B&v|_AQK;7I~B}OdGiUT9LX>f0xm6<;LeP!=vFjPsUQF*wCJ*dO)4YBypgdiuF!=i@6Zyi7F|q#K zz?tlSZULa@t1D?$e;f@b36&N!V2mjOHw|*qrt0hl7pI`Dr$rJ)1%#!m}(}?)Q8C%hu~P z&*$@ZsT)vdK!&|8zes6Pj1N&eUReJ`yuV>;nnucw0cwRZqU);x5X_mKSbSEdYhBl; z0GJP%irE%X*WG{_OK!=Ch zOWQ$|ChD2{a5$vx_S-*#TZ9g))rvNojk!lrL~$Hb5CpB*=SGmFLUCD^mceefGw-9( z=tP6QkAZYflEgU9dV%b_cLe+t2B0bK>f?^+)j$Bo<1y*ArlKh97|`KY1}?y4GBI6U z5vSAX{{X@;G!77-A;&D8M}xOCP49p%jzo#BYdscH_X9`;wbP{~X{rDK002ovPDHLk FV1mD6$SME; diff --git a/images/icons/joystick.png b/images/icons/joystick.png deleted file mode 100755 index 62168f56f2cc2f816ab5ccd61e23582124773d1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 559 zcmV+~0?_@5P)C7C+PJG?~lg zv_tF}9Lz9`k3b+0_INxX0$taGolfVSr|u82E+>M?WOC7HG|+4|1%cb`#%MGOIbj_M zI2hS%mi2l)L9kpdg&$2I%d&`!F+pIF98JJ?fOI--`g}g{MGB{HPUg5ozHumu0!fn4 zYPI0^`%mkDgH5_o(=;ga86JN7P;YOp@%r+`{n@dDa=9GlLEG(iGIue5Fc`$0xxvNb z6PU4NE4`ciE`KK9QmM;Qsg$<~sF({%i$^+^?KoQxsb_Z&~CSx=zu3>E?rbA z6%vtHm{mkRo6W?TzSB98NQh{UKnc2aI2_s_t8l*)3rD)3UuzRkk`jD2k+1;!akJU{ xbDN;s?V?_<+oCyiON~@Sqwc?8=JcFTu|F2lW40ifwh{mU002ovPDHLkV1k___RjzS diff --git a/images/icons/key.png b/images/icons/key.png deleted file mode 100755 index 4ec1a928140311ff30a0a9120e958096c77f446e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 612 zcmV-q0-ODbP)nmX^MrbE*gmZ6|p*GkKoxa?X?hD9M+@sRvFH{EqYA??u6x z2pu{uGnrwz*>rh zfvUA@7b#acN?M*mBG3rQV?e^+0R5m3YXWyRZL5Bt@3vAw{9JaEW$}=f4bXO52yBH{ z;G~ZN|GLn>k~{On3Swd-Sy(gFkOdyw-RP%&exwl01RJRp))TI*SsngruhZksQ*NT%!X?K00007oX;fYS5fR?a$bad^&iuHSu~`3%VTtO}r!shMd`!61c%6R9aJGSh8X%)P*raU)hwAiO6D z)GH7M>Os=K8*y(FIo?C~yJ{<%*U%nBM$Zz%Wh5q=k@+A)HgpoHzyZX@8&HV#!QWjA z`_+cv-}i0Xg^24s7I-VE#u4*AQoR#N?{>t-#LOH})WMk9;P)owvi_IE6!o^=Lf3R#&PVCy|Gc4obnhMMwvBLinP_YpwW)P1ST? zrfe04-x)FNzro&t&e;ir^8^J56p&nqIY_fO@GcRuAKQt!4<44sunkb-j=jm5S_@$&_dyonDz^$r}kLbDn<^FJI)(KksQ7G*l%&dIcv63Kcm5d9~ zQDnp25a#b;Oe2ojja#pmUoF|#dr&8W-hPZ#rZfF!J@DLVkx!Vn%)K#giqbQ`G;LE> ldR%0)iYQ5Amu3}R{|RMS>3;1N)RF)I002ovPDHLkV1l&ZPDKC! diff --git a/images/icons/key_delete.png b/images/icons/key_delete.png deleted file mode 100755 index 00dec80d84e295960ce1dc1e67697a8069cb7a81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 724 zcmV;_0xSKAP)=9*v8X6NkdoU^aazxO>Vty1fS|IPFA`#=BZd0!0x%|@E*DQYFc zidz4?|1UTlpHa1z$-iOIg+%ZnQjsB2R#X#Tr{Ted2AOdDs}+f*j@9m<$JfEa*}}fu z$Uu!uVR`;0;@|EO4KAB>8K9(jc-t7&WL*OqnZl|T>Q$3eco5NP3qIQ<&p8a!QIGS6W&aB5E#BpfI5WT`4B&yh2*=4=+qeq6S+tU zjo@mtVQtBbHKz~paBq_C0>lQ|ub z=4%l8pochl2-25Zn0s1)*=J>VcWxI34LaCQZ%qyuwbiOY=1)rmIuZ4hkWM*>a`}+` zW{jB`eyBpfxcN{3dS$(N!tr`6)T-XByta8oP)jGlUfiHCke$)P}4*HwX@?mb` zzgiE#M5fLDxtj=lZ6q=+Lkt2$!wyVqxC~@X03De&Gn$t$kdWJig()R`(|L#ldNHNi zi?tK@-;xA1zab1r3XkO&T;m5wdrx2~XU8>fpl4v~7ZF1h+!NXGy*rQ6jw}?mrNKGI zL&zzIrIL-VTRiLE`+jy5wt-SCISiy4pO}x6>V>$`&V{7&3{GoOF)87oTao_ek0H|L zXxL5q?8f4p7$RLZL=Q4>?LH3$EqhS@^b{VAG@wL(0y*{DquI)BECvw!(ty8jr^s8DqzY3Mx|xw6AM%RhNVG>V(j48H=@2*+n87;k63kFsH&hc^Czx zU)p@TON5%2#gM-!LRIG_NS|MUrcZ`*_YPuLB^9Iro+W2D85SRofmAHM&xik`9B1#a z@o-oLow*L$!CJHqC_n){?E(&Zwhf|^V!qqZ#X+&c)jMMwsg3*W31W<{FoWOGV1 zuOTTStWS(&DYr&0v}HowTZPN*IY_RcCU%rj3Cs*;4T3Shy&sFSmGFOV!%!{P*`>;C zSiN43jAg&56(U(ojS}%A_P)*`a8*+wFR*)hbh_o6Y7qVU;jPxsytzx2T?qC@#N7E3V-W(78^qTtcL0FFmlBz5|hKo6fQCQbi_Vm zg+fR;d%p!KXrNejEi=F1j*`0sM==2=;t{-@ieUG+gr6s6^hxPUntw5hH?N{}R*muG#iOIqP)62!*BTExOSjY%3)*jT5svJpGKf=$3CUqKK-1RDzx8ymlZ zwS;W;-7_=ySiHB1u9f68hg;0tAIzK-5q6bH&%Yeqk1(r}i84|~$mldU469wb{r=gf zuYVfkh}abCXHiD56XS1@m(?2&*9kHq6O|^j@r%)9WR;gBSR*+^{BUiAhv zLTNl5-SWcMf`$Z#q6Tzk02$5(j=VTsw!_ijI|?3O5Ws14CO8uvli9}fO~g1=Dv?Sg z6QM+>P3O~zsHL}l?cjL#8yuEVU~n|V*x($S*`2dri>5x}hU56pjd4M7=H5jVf&jnh_YoHFW1pQh33@EE+GcT-uHR1*sID5Hzvg z6g2}hp<@K+0FD7#ACek+3k!>iLhA`|uU)j;i__)Z&Fgb3t?v-b7s4*agaQ+5 diff --git a/images/icons/layout.png b/images/icons/layout.png deleted file mode 100755 index ea086b0428b38a89060a9a375185955b46ef8a16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 480 zcmV<60U!Q}P)bIK^Vv3-yA1LIIsp&s02Z_@K!5`#FX}eq)v)_0l`)ftgN*V#4liHAy(R@)k5$_ zz+fRLk_!vjJvlS)-*?c3MK>79^8`s8M#QZ=d~*vp16%_xfrJQ{sH#8}z|64B_Dt0J z`P0WPW8(JB3js+iKY0CE|LOkIcXC92S;ReA+hk1aZ*^gg4_~%hT%<6a;!6vI(h<04K{gA?%Sd&@y6=YWeinIdj=VUB~cY!neEQ@}0VeaXlS6Fk3nozGu) zn5I8Ji!4)AIGIuW7!!BH}EWfPj0kw!x&q?jF;~BwWO0 zvkjpC_R$R{_2*~VkEAVJq{#Mc>CUTjlCENQ+$@0%Sw@yX8JQsokiZ5|y~hPf9L7(i W;q(Z^C>$XG00001r;P) zZezzV10q@u{(~D3H{r}Lkl<_rHY2+rym24G3$cBt|B)I7p>=x@2E_E70t<%J@A>aj zyX(JK%`Pzi-qR0QF<5QQPJ{u`T_?bT4rSZ_H!r*R-=cUM+<@2bzoB550l^j95C%kb z90v;;=WY34xAek)y_`)b20VN7_5YfKEB}|wO!%MH=l?&k%j>^yc@dHe+Kz%X=%laz zU%KGzf9;gDCcszBu1x)Z;n}YL{kyaNhxhCLH_w*rfw-XU2;6{@`IrWP zY}|Nx!vBreCV|C!_N4yr-;)k9;5*oWh^9mTUl0tqi6&npJ$x10^Z5HznC|jkhtXU{*?AXX+vSK$&lqrKo z4P`-MYRWlh-uHXoo+plGVQMtjm29&SnPTept1G}>;1qBiY)nF?X%bBWNhny_l)Z3d z&-N3@T)lWSVVldhUf%V8y7}mh3o^f*rno=*oe{IP>4|aPep(t*WGZD`whRe#WKrpOeww^A5*|8>ZEI3iJG3d@;ddSaaQQiv*3SWXm^*Pk(vkYVP=SQ%7gX+6s4|5yBQ}3^T_6XQ zZDbP)D!Ze~6zXIkQ9PYpWTZE?jfD>%Y1@{Swk5itNez`{Q)G&e7J>b9cP_BngG&!t zi|rp2nJV;T^4jymwofAMkUFri0;>ZDmaq-jpk-+0DUxkA;uk8$FcGE_?o$8&002ov JPDHLkV1i%8-68-0 diff --git a/images/icons/lightbulb.gif b/images/icons/lightbulb.gif deleted file mode 100644 index 9a15662458e2431680913b63463d6a29b15137f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1022 zcmeH`YfDpM0D#YQlvakO2@+il3xhNgq|D6CawQqg=w=v9!_e$vW~C9iwK7ww1T_uC z)D(*-OU+6NQ_Fcx=9ScTcHEBcqTAedE<5l0F8Txgf}YRMrw5+HF`~U;NuHP|Mpt8$ zItu|4g=bRg>rTWv5nTG7Yf+X!dSX%@1Z;hfnMUlit~pKLoDSKEN!ds6;xfbiVh}PUgz^HwF)iV61ykH+^CCzVBILjR3jP{uX@i9^2 z>A2r_d@0Sv!NDO@cjdCO6mbSfkC#4{v${T0YpN3gFei0?tk_s*j{< zjGAq97z$JqeR{ot(X_ET1z7&cXa}sL4Yjq6-0~OBsz+eynfwA`h{g8w%PD7nJqZKm zDLdY09(EThO;ypyYlrF zyD0n`a?H?kcOdoC>2zZM`DX!tme0emYHa6U>+cho+cXyG4t(ZUSGndVH|cg~Z1Gr| zJt)?1Q9P{_Zs=UoL*()Oyie@k(PR-QYuAVKN#5}^VVNJ_jo&H#Q7n&jsqc`CM7zJh zcnt#Oy|g$tS;+Q?*HTI0Cigv{g&hfeC~!R$nDrrmELiCgRW`M@-_!xE8M1h{8!yS=n=Us#^)8k(A&Eb;9d!M ug&?R17thtl&dbt5Z1MhEzw2Zt#WONOK9VlG{yb6I-7~zXa&dLR!v6rXxzQ>B diff --git a/images/icons/lightbulb.png b/images/icons/lightbulb.png deleted file mode 100755 index d22fde8ba46eabd4335e4fa88077e80f96b92d62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 782 zcmV+p1M&QcP)0XYhLR!1P*SpVQi>)dUV<_*6qInHGcnEb zQfX6|c{lO4l#RKaZC-XZ&u-_k%Q@eEE?Qa!_Tt0u@H@}<^E~``A^=3}gr(l4vU*i7 zyV6Lx=4yE7RGGkx6gV71cjvY=iqb#p!ylZn>j-Cf+b>x95wMRT==lzjH$f681f9ze zR{P)>$i_z3RfAovII&B>n%*Ds>XegyS_9EX5sW0f1d*FX&^tjGBX?Rzej4t{=ddW_ z9h>UH!(o9}TURNVdq{y5qM#$E1yaxnNWKtKkRh^p1YA9U=z#4*HY{(h_k{(nnF>pQ znJ2Y6(rFb^z)nJ2pnqIQ&_2v{yl+xxUhm5uO{Q#!J8DY)klFd_YP)!y2hX0`01t+}>V>!L2Ii?(iJ%bC$d(ON6}*wnOwG9V2N zOG`{7!B5mwL_|_S2m}#C`CdG|@7W+M+U(-lIXipb-}9Vv-Vy*Mg_?2)&x|dud>nH6 z+Pg4Y7{H$F@$4DL`b~nbIs5knvB+k zHj8ub763Kx9CrFf76K8`6xv9LChyt?+yu)3H}{cgBtWFDjV( zT46G1p#RVaN{MFkER1%KNN}rd=ywA89=YD?5^*~T(5|_U4sv3(jyQy?qF#!I-YIcK zeuGD!Ck%N2HSJIh+U=tYeo@e&trgAm(x7tzP$_D_zeF>F>u*g-I^VNp4(M<9KQ~%~ z3}FWb=nBN{ra3RFTFeCC z!$l`CCu*vADm$NUP}Jde?Il#nFW_p845!NWW$Et^{&SQIRV}^fRyMzZQmIB=eG~3I zc!HA^Wx-;#MFG+)=LYmWJqQGXuvo_MLh%Zf$0hUI2Iy7tvy~@~#>&eNWlKvX*<(i} i@%N3@m$wc0AN>MB3Mf9{XhoL*00003kp_oQM4NsQ6$aEKj6mx0hg})10sT;E2V;K zUHNY7qG&TIJ`gc&M*EmdrgP_>>zSLTO=}7j2M*`nnfbo+_|8cvrSLzG(R^{I&fHg| z3Nfi70*Jk=pS3m4lD_qhO!oanz~FpWe?InrjDM6H7D@P(w+NOTuL0gfPQ>)8EiKPO>RV|@%G(EApK7|ni6$Or7s}#zN5D2fFuoW z?SUp(cysDe%D^FVRe!-fK+o2zXp zH&*H~_``&05AX{CqjQ9Pq)Pw`p&~+e-<5=lgjH9A;4MsYR*p|Xp3o{VtL6Q8vD&1u z_TBwgt>E(`Zp(h8_8f=r&cr~-uy!|BC|zGKq17aQeR}wL=f1PUhPjus5Lo&7j={xc zCLhQZ=E~bn;<}`gh7Bu?>ih@P+*yw5-^u2k8!el-HG?lt4o$V&*`tbh^4#JtCOgRB z@^-thiGaZ!P|20J4^o7;v)78_|FldDe9Z$i&;9^|y&bKi-n=y{JsccrzVF2T076QP UWao5~B>(^b07*qoM6N<$g7%3ha{vGU diff --git a/images/icons/link.png b/images/icons/link.png deleted file mode 100755 index 25eacb7c2524142262d68bf729c5e2b61adfd6d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343 zcmV-d0jU0oP)$`dXYaZs9=SbAto%g@>T~?_bH&lTUn@`uo|1bXE{eSR(AO)ESb=V4`uk}mK|39Px&03WLbv~pzk+s7D@lK^ zn+aB+sp)&Y_x-B3>;6ywU--WQNUr<8>TU0P-|L#1U&;A)67w(+> pDf@fM7q9#F25QXo3rUI;002ro52U44e~JJA002ovPDHLkV1l;_q@Mr) diff --git a/images/icons/lock.png b/images/icons/lock.png deleted file mode 100755 index 2ebc4f6f9663e32cad77d67ef93ab8843dfea3c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 749 zcmVe|tv9>?g+k#9o0pTxd@;_sq{kwlU;^VvV*?BV8P@}BoaZTQUROpWV6|-M`|^n&)=+8tHo3*<<$NU zU`%V~ZF;?hBSYsjJ6%JzV}E(D{pOLqQklliUf9um_tGl-wty`y*p?eYNW56P>X@1s zZs7KrRZKtmV7Lqj^5Fgr7_`LjhdJK@ltF&O`j7?*NUM$KvmNGz)3WjM?V$vHlPT0AFyF?kLE<#HZabCSW3-oa*6;Z zrXD`Ulwd<^2glP%1Y1Kc1Ij%DU^=ME(jKf6APNlA$Uu;J4bVilQHSWX5uJ$9Zsp4M z0%!@LvyTxz=Z6stxlichODIY+yNGt%RM;m`>H4LOKLFs9Y%b5aUN|2|{0Zw|<_~i} fmXz*V19AKYarLKlJyH=-*k3W|aiVYC~e{STzB+=%NyKm^5w z3m4+bm8cXnzG}0Gw2c^Ol0K$0_ity0#@^}dhsl97GUJu9lkxh`Okt_0|=(|h`!tol*)tahk*i! zgS8GLCq{|Gd7N1T=a4u`0gM4BU}M^~w|L$b3WtyL{rO$Q?PPfL6z$J7;&2In&vryC zqT@6`g9u_Zg@Xt1vO7RIY-D-g8eo{1!oIz%ujUZ52IBq#JOI%e5ertc^kIf}?KOA? zx9*6-2qdQcN5WDRs@&WP6I?Nxm{No*quRTbIBKa{opLb zA%3`w)e+)sGB0CNfHFvOi&e6QxioJs_E&O>(i(H5HPdeu45xa7-3Gh;%9Wh4nr0hffOdNC-?LD$p>QUytZsFT-LsVDm- zkkSuK6Kx&cjl{J`-nH0(5h`dBM1#Fu?T7^`3P5)5#Nmi=+?@y~3iOBukAMi~N&`d$ z;nBbdW?w(fN{^ns%ib@_e0kqddisx3UCQcxgClhAKEkK3ZBvskK4+6J=duqo6B*0Z z`QiTU4DIirW#!`(Ko${HDwSbi45$P5fJ;R`n&8VI0S0!CoiyA}k0DS`b78y(oGU6a>AkUK9~n*^7|=kr7cwRFWv6%Z}9bXJxHq zv!bQ7t!|lawm;5>vpILy?iOC&HfG!Hc8BBJ-HKqfMb?WCJa0aq=l6SfssL2|4?ho1 zYF_hZS|)5^i5(2(3eSVtLjTwt+viCU4@P*+9|NQ!zmCYHkC8wnWH2cSOj5$smpmL3 zY1}4f$SympsTgoXWWvkj!KP${W<>az96Yfc0&EV^Sqav$1oSUxqGI6Xq{vddRFu7n z`2LdsHzi;=Dtr$y0$QI$*opyl-1%;k%_tFkSWDaJm;MHp-}I<6Z; z`=uSavTxAsh-+>P#z@O32VYD;@Uw_<1$Q)qo>w&5O)gAWuE2V33*Ucwqps{ny7nxp zX|aTf%a1~AQ*W?v_D-PC*yD@0=#7-ucnX}S5B~d&FdbXR-#fBe_gkP615I1CPtR;N z4-*FwcN*ZjSr5aZ75rZZR34vLukCGEW45>LLezQ{#QvpNP(bBYeXX{uZkgF|xEA`o r)y)eIsC4dIvZ!Ov;+nFL_^*5eZM*&99uRXn?C+>d!_~PEuLc?=Q%67L0?6~sz z>zl{Z<0ZD9fAi(t^J6O-C$2cY;na)cGt(|V{ocOf(%r3{yRU!VeeLt#KflgC`uXqg zpIa|~9J%x5?yH~cPQEyK@AKJ*U)P`eaAr~I%~yXOz5TgsO3KWg_fIXUesOyBlY?_7 zZMr>m`hx4vzaN^DfB4RqfB*lVdhm75uKQ;m{kZ(>$DzBwc3%5-^8VKgkH4LJ^sQ#$ zh2!_WZaVjF=E8MnAACJJJ>}uspGWV0-F5!Or6=FlS3B&#^5)>}9|v!Jx%T|W+}-zq z!Nougp!k!8k%1wDK?h_QC{7sIr#56XHMg`jGdl%`aBIf+wPi4iTJTFbTS;&+wkZV4 zvWK&V+2|yBf$1#OQS~GB_$+tQ1iHrEA3P=WVv_*L{?PN1$urqEG z<`QIKGh;|h_tI)*G_bWd5>pA#m(h^Bm*B|}p&0GxuAZbip_$h$*27Tkd$akBo&_5p W-B%EFG23Baq2bQm_MM55!5RR~Uo33^ diff --git a/images/icons/magnifier.png b/images/icons/magnifier.png deleted file mode 100755 index cf3d97f75e9cde9c143980d89272fe61fc2d64ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 615 zcmV-t0+{`YP)gNuvOO$0ks zMIj=HnnBRUR?tKXG11rxCU4&7dG4NbuvR2_mEvc)n?Cow;~Wve|KR^>9@p5l)|QB+ z$jmun3q#x>;ss-PW_mnr2MHVzLAl1RW&0?VkixF*4t!St0YVb2wnKdU(kmOHiL;aW zK8Xte%(k>MVGG$E4no6dcNnb>BhVHHGD&1pv4YZ68kE2V03t5#PCEFm7=ad$6)+3B zTCmn*?A?=u(o~ET7~-7g0)ZB=6|lumi4}B}MLgy~Ysy6)Q5%Al7|05&1z3Jpu>cF8 z3?VXs*3<}%h3`5Wld)N2zJnk%Agw<~3k)sPTLFd=F5;d8-bj-09SkQuynfflNcZLN z!^_37fdZvzrq=9~mp*($%mcDRKC&qvaaZuX+C=AT6O*~tHl>0mcP<_q>-z%$xO(@! zYluq5a8VQI$S@4?r*v;gPo!QQ%pX3A#>xx4t=w-L6COWx?aj&`f+!YePsFtj=hOQR zP3=E2j@9L7s8;T^&s?u(Hdpu?CubjMrGn{t_37>9$|AD)QE08weJlKn8|OyjL~7oP zC8mPT`jzuH*Dh^I0048RGafUIT)4H~*m8m>egI0iH=(LB%b@@O002ovPDHLkV1lw0 B3FJNMp+(Bt!=q9U!ZZOlw$c zuAy5i+nTd|<_>NivLu&tYWf+obh7aHN%Hi45`pBR)x`tA#^U98gM4FFC6h~&)aWQw>e5Y84Gj%C?Fa5wL3#v12nvm3<6OafjJt}U((Qj zn8!nMmXr-qoCO7XcZRS8(x9RlIA>F^1(GoPldw}sc)rpQ>IL9yYf!7MN);5mno3dL zFr9-f3^@5I0h2d@QBNW#I`RB4IwvonO1T#W1?;?jrZNjp_!1ar;E|a)8g&BH^;Scq zt%uAgf}pb+yKn5ouFDnCJb}hGpY=s(m>77B`PIn4hUqw48S;@<+#YViwZYT4_>vEC z?=frJc<3Fn+HA3jXTwUklhgJ-dYkmNL^YBTW!uzZM O0000v4+f|_@RWw>5)RM`NuV&uI^xiO$D8`6BxXk0tJ?EWs<_-8>2;-) zWKcp3o`T%Jbv8DZ00H?+2@8dyT21gt$m6G*2l$?iC6Iztstut4r2wd-3P8bM5!|^x z6MJ9rp47dzLZAW(K~IDt2)_Q5!O~ibDk+Onsseb-MV?(yFmrC!xqLisbKh@i`-x=iJSj(h!<$+YCJC zMh+7C(a}Ik*keF=COGS#EATV${Oe*7f!k~yXly>8nc$8|D~`n~7tbU)p80iOW6x*> zfhd3a=HED-HQ7{p(#WSK4HSf6DS~k8V+{yoc_aZyUS8kc%l3kxbZR=z9LMhG;Wrw3 z8^CWiKHr1Xmw!h<2Y=(jgSQm?7a{$E6f%b+jDrMKM)1nw&G3%||GEwVKPFC*l;udx P00000NkvXXu0mjfxkDO? diff --git a/images/icons/map.png b/images/icons/map.png deleted file mode 100755 index f90ef25ec7f1cb0fdae38d9fe2d9edeee9928ef1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 804 zcmV+<1Ka$GP)mbpQb1@7I~O+ue5CWtZi#AZox@gcwb{Xkx^Rf;Ty8yn6DWhJV4kC*wg94<7Vt zlteKm5+jKLV^qM1yt2HO4YZw^&a^Wfzb_m+@y40e_0^+M6ajz$03Zl}fU=sqfA9W} z@#^~O(a%3QB{YI^J_A4y)M^1_vjjn1H`Mc5t@6>y50A!C6seTL>`UqQ7p$DgY@K|> zQm^as;HM{#Qwj<3}(>R-AM4&+cd0t49%y2X`UaCBJg8YmB)K#uA{Z>9n zOp8>WCg#&r06`o8oz6gaIn`fY2FR)ssCr@3rc|5f%`bIJO$zbt__PK3gH51Sff`H}0ZWac9&q~*( zO@qNscV0VSU%X#sYO9)Qx4M=(eR(m}UFhondELHSnO2hr&mMO3 zv6gmw!P2y#u0c!?LPO88NyxOTj>XWm>*77F&55fo9Z?)iynObdfA;SdwVRl$W~G3* zEGt!2+1T-%ja32&!XdoMS_mM#IQK#{6D_nvjYu`GlvO3XdE)qYJJ;7`P1v}r1H+ja=6UDkoHNeMI34Nf6XW_#WMcyp!BRqF zM29h3TEaejqW$r`J7sE&j8Vu&Kou$XB3Ou{$X^0cFcH*yRHPIVIa}8z2vp7qgot?$ zb8{r`QSV9KlZpa2Kab`EEQJ3!2yxXN?yWR#^=aL$L#;YIcSv3kKJSu3T>Ym&{r>&| zQt8JV4=?!oEGbnmDR7dL4fbhP-uB(SbTG=e(<<1TJGa5T3k%O@d}yHgFQhoZVu48j zSEbQ(OnrUXCEA1R+3xoF93<(;wMR2vTBN*33MFVUphb@Kev%*cC}x*u^f-0Kl4vT6 zv3&&{9G9R3kcdW)NkHQO`F+ShrogAg@f@g4t5vaBpc1eYQ7PdRh9bToc|nt#o=`?B zn@HlB^|P6VQ394crW5+W)Q(*2gQoM=#g}=A9#9Yuk)v@3DQ?z!d$?MLrf|-B`EsI? zwP^YuNMLi^!9dq)JFmN$%c*2dP{mUDCorShYSU)G0+SKqfs a@BaZ*f3CHDs;P1S0000gn_Py*^3f)*N7*a%wSf-Fz>>todNGT#B=>)M`EK;mZ{((hAK@ludS}2Hw zNSYLa2#Jj$$oi4RO*U`e%>A->o4D&H7Y>(U?m2TfbDf#txbDBZYd5Z3$5v+pVhT|i zK*7qmdZB^mYcKHT;d^(?i7`}647Ge%RKTi({tqGWFy%jiz%T$^ys}?={qOs|c<%NjP0!#+A{b|IoMO7ai(5OddrPx!Z`UzyvIl#oj^prg?wT`16pfYNmeVzk(01B`N2%T{ULhEt& z3tXH)C5%|lUlv43872P%9I!s_psy?O*0XlvQbb7!P=yJ>hyXJb%2gDr3F1#1ZPRFF zY!3h+JifdHMk~xO*0YI=5LTE^0ZK7(w2OFaqpj?g&#msPo+b%707*qoM6N<$g0NH=B>(^b diff --git a/images/icons/medal_bronze_3.png b/images/icons/medal_bronze_3.png deleted file mode 100755 index ed3f43eb02ed2a663bc7e7d90ee1db42d66809b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 646 zcmV;10(t$3P)tEd$*D0XNa#H~{u@&`DHPzMJWk%F7xR2(`~hfa=lsOTVF#lJyH zOHm36RcKx8VuTuuO>XYJ-}&K?wj?Ha;Bc1jdC$xHoygreuA9%^`~6#2+5FzX#8EX= z4O2tJs7;?|Wo?^}D|ez}rbthjDrSy^BT%|irQ0HoiuNM?0w>#ocA*~lMDQPhLZ1Us z+DYKj=`tbLzP@s%LMzEo{jUREI{5No@!o|^E|&KgwKf2WSNOpcuXkoJDK7OgQE!O8 zR+~?>{5-yX_f#lNqFTTuC6a`=vroSJwlz-jxcKnX>VSa1xiJgTyL{$JHOtFb@*7Fp zct~-{AsV4P8Zox}qE7JJ@uQus{tQ$W?e}5KIouh%f;#G_z_YrsPQcSb7Xl*eO=pEv4mh2^1#ls~;X zkFb=_%vICUWmF8$5(o*U_CCe!jk-y+cy@Jfb*KP9x-dO!Embb5TU#BEo3hLTZ;4)MjYmq6dlVGHB7JO-msN z%Iqno2vOD`2re>_p`5{)x!%`#bpc5{(Fd&5_<9L0}=-hfsKtp zG6u;x1f>wAZ1(m-zIl&|@mB0pZ&ET3uh0fe{L0VfOY)AF@|54!6J0vqV7&&esb|S34l$G`gnC-%!Nr9`L zT?xYH7MH+67VWrH>4lrXc}QJBoz85S&LX0r=N9SaOWO&Eo`QUq=u+jVf9!Uh=SP&> zRWNr=`Qj=PC7YBX5+x{~f1C!DeddkS^i~fzOR~1hbsmd>+c_n*2$a-^aBZ;M3hZnS zZqvm&QQ*lPCQ8A2XvKaAr%(jyQ<)ka^@3VZ2P~g~!^#1V_w4jQ$heSYfn=cxxSo3v z%>82i?By`CoJKz0QB$~oI=^aVhhIMUcCTcjEdE4{Zb;t+*#NloYy;?GnP8hj4 z5W`d){ub#v{#Yw8NhQv=UkloAoq2+my+?EzEh=!tkn!bd+9WnYW>hH=fe-o(K#e)C z3`{LgVrZ;CAQ*bxkA>f}x^x2q(4o$OSW_gizPutkB}q|t_6^+V3@d4#S6cP=u>S~Dhet_ drXDUQ{{mj?xUREc-`xNJ002ovPDHLkV1i_JQQZIl diff --git a/images/icons/medal_bronze_delete.png b/images/icons/medal_bronze_delete.png deleted file mode 100755 index d32aed727a274c60dbba1060637b25791ddd2ae3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 730 zcmV<00ww*4P)W2cRU zi9*0MK@d@5KvX0|iTTn?&iCHko!zl`lS`uLz%sK7zlYxpJ4RIj2$wD@yZ0hPL#PNE z0?~WoQZ5}ojy@k|-HT_2RZ(0nR*Q6%FpA`N5!8A9j1_%2RrG=1I2`(3^cf>43sGA8f6YGn)P#lOSdW(u9`Z}^OM_pRMhMvD?5Osaj1oatF92z`Pa&d5Zu6`P$ z`eK}HdTL|nElvP;dk5vt(hxQOMB*FP8z(rbpT~((W8b+eGiHu|c{08+mxqNb?)bbN~PV M07*qoM6N<$f>3)(#Q*>R diff --git a/images/icons/medal_gold_1.png b/images/icons/medal_gold_1.png deleted file mode 100755 index 87584dc95898d855855de134f117edbbe77c81ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 629 zcmV-*0*d{KP)Z>d?i4qd16vfQzD=mMU~8 zN|%D0Lq)_&gV<4&f zpuMp&KaagxW8&>f()W}Zs$r8288yc4I!3Gr!gBs2b8q(cLfTTC=<7Ux4zR z_uJ;uHfQc0WBfcuN~$?YXrX%_DaIbQb-`^9dy@Vy#CNA=FkUkKsAi?(Xlz3KjY)=y zgCqe7v^VPwDY#O*W*ht7z$DZ;eXnNa6IlEOl4Ig}%259u(~PlmH)~;!`p6YD7PF;^ zOIX~))b-?ha+r3|@RM}>Bq3vVYH1nM9Mt#Z1`-F-1`EW3>L@@IEP@t;=>5}W zkO=d{;*dVjC`}73%))`_ZU8}%qC?1Ojsk*Pm)#ALq_jW2^hOJ$=~42XuXI|hj{wB6 z+}^z3P`3-EG0Y++y(B0}d6MW7K0SZc$TOBl`T$_(adJZfOOuzc*DBSskQf#-q-c?S z+hXhK>qefjIQPt+90~yV{2-YrTGXRsRwC8l!F6c5jCB!~=U#Lhs9%2ozn-rxJP9Nk P00000NkvXXu0mjf!(1iX diff --git a/images/icons/medal_gold_2.png b/images/icons/medal_gold_2.png deleted file mode 100755 index fa3a15dd67285af0074b69bb46f3df2860ee7dfc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 641 zcmV-{0)G98P)W=215y}4!=PhViQzKob6 zDm^JtBWDj)c(U-6#XIkkeoc;{h#{iZJuE6j)m|RR`#4;(3*aMW5JZL`U8!n!uM>6v zGQ*4DBYDQiX9@&~cnNq31c~IcMT#~~@ZtXsf{%0c_4l(^^Pee&bqeNCHJX~`mmcQr zCnfke_g}!XV;?qJ@nf?%b$gt#Qy3W%Z8I4fjBkJ8VEsY!@_Dy0T$A*>5SNckV=Qpu zVcD{iXskp0i%E)!gCqe7G*_!N@mwljv6UTvU=pevy<4{20WAIjX=CDgO3}_wOj8Oc zZ0^+cLNBD_!gl}eH0Mfl5DMzB-x$zrI#&` z$rNdCey7!7X#^mS`R3}qnz}8>7BGvL^qin1xe206`1D6^WEW2V9G~OIZ?Oe&$to bfco(d?EI=iCbwn$00000NkvXXu0mjfNkJU) diff --git a/images/icons/medal_gold_3.png b/images/icons/medal_gold_3.png deleted file mode 100755 index ef1b08b9203d3f24f734288042fe49c9a761330b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 634 zcmV-=0)_pFP)MJBXWuWa>}^3xbUnyTHuo)Wv)6?Z%}^KK!Vm-Vjkl z6cxpLr95$jg=edLTDTf?JUMzwMNl=oYa4y5i*Lz$L%j4_`T@JsoU}|m=3U?(K&CH& z7s96Fcwq>aN}t9L4bx~Qi2OH!%>DVcJbP{89Y+hF$p>{*jnIu!b!U0{_ODm z!0%uZViH3TfH)efm8zs%E?u{kz8#pj3gdT6mOG63EszM4xUCRPeq$PvKYgp@wy6y4 zKz&-yj-JE(Hl}e~Nn0_dP1OA*Gja?UQXaU1suV4g!!!a-+KRi97^DH_@F~SXfGC&; zO}o)M)1{jTOYrGFf1qA!=IWTaJ<;PX1Vz#&E}}LFaPg9Ct`G#-{`k`F=E!7*i8g-H ztg|!#keK<#>iw$5n~=?8<}qm}K?!mNd>rug<(q00GQaO5Z9EBP#4%Smf3tL;I01oS zK19+w;jeYppTDg}A+ysjY;j)z!1o8iR9dIvW6I(wx&-1TwK!x+g!$=Ltq1DVKeyPk U$*;Edh5!Hn07*qoM6N<$g5h`|PXGV_ diff --git a/images/icons/medal_gold_add.png b/images/icons/medal_gold_add.png deleted file mode 100755 index dcade0d8db1e2f08bea2b150c3a6cfe46f694726..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 733 zcmV<30wVp1P)D>BNLRMw2ieX^Xozu6uvH&7^%eKL znC@8!5S)MYO_U$9;ldIcHzWA?u7;;exbjDm+^x`csBd!to`_%uTlOK`rL{LNnI@bm zf~g=jLaYMM1FH#N7shSE@%#xH{^t$E>H=#o=OtK%nBQP)h*fn(xOf6_5xGsL^14i6 zUIb^7w#?$4h$$mZ)fLyJ5LdEUM)zrEP>k&f4ggpBa z@$x&AY7v!csq#B4UVqR%axHaW9f$#!{Ix!PyHz|ME%V+qa_Hb*TADZU?8DuqL+@W+ z-G64yGCz%Ai=s=2=sDI?-Tzc%_m*8)-?D4<5v-@#zvBSF=@g*VfSnq~^D^LKa4MBe z`$Tz?thaF^ykuG$HZ^8u`)Cw$#K?$i`ya)=nj)}7#}gp+(28>FZIBmg~+ zPcl037C`v`&7CrABD$s?UK~#*-r;4M@E5h<=hi}IB}dmUXXx!94FueK*GGdFF!1ID zK(9CbodG`I@b)Do3P#ap4b3_RRi&sR25zocS@{_R$AP6l1?U^PJy!Sw9~HhWDlkR3 P00000NkvXXu0mjf{{l-G diff --git a/images/icons/medal_gold_delete.png b/images/icons/medal_gold_delete.png deleted file mode 100755 index 84b06d5bfdeebc87c663962937c9ea0e8a956bb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 724 zcmV;_0xSKAP)HY|*JfU$_R_$b0#TLxJ>S10}f2<8B> zL81s68gNmBk0M+Y;j~6&GWcQ%iR1q`h|Lx9uiKM{ev&*o4mATEgXcI|+6M zaRtO_PzszO-`_UuVh*QI$jd+8K%8l#{&HFpD-rt(TnTZyq5?h|MSOwOmeXmIqwTL1 zyp5Z}CA$!tL%gmisz@Wgh&NLNwQDg2n*IiOR~G~c#FxNF73q07&1mm?M*AL8{E=Am zF`M`f+&<7{JIes)K`i)q-umoxry1@0K=HF-_pwVXYTQBTO;`Qf=h>^-{mDX5UcpU@ znMTAcuwK@{vwkxBj*$A)jkTs`7I76Pc*0eSDZY9H9qWl&6;rK>+{hR%lp!_y z8-Lzar<~!+vOOo$$-2#;1hEBNJk7wPUJ9RPs9)_!1cS_sS-y^h&S+_$0|0!vq4vhp zv{_A)v(%XgbdgD2prTM)VvGS_-qj_8gF|p19)P(nFwXL0DoD6AFDg=h=3|k~IRy4M=>;3cvvoB9REhVzD5)-R{V; ztdmly^tR#wN-bwHncQqP1H&-D!yBL=0vbct_24|8&*xB0dBa2m6-W(rcFFayI|V0O zEEbSVCIJ-`HaxIxJ569-41x#Zcj!lY8^JGF%`Wo1U#H_L;37nKHp1{6euL@ zHi90_Pfqi$V$fMU9*6OGOlo@@1UOf%-|vqUMS(;jvEl)BCi7%jhEAt5LW0`HJD}BS zwJuOeRnxSbs;WP)GgLE~OrYIvkMOoCjYi{kD*>%~y{;ii8M_qdX2@JDnqu@YYRzWz bO~ii#xW2)!uhIgp00000NkvXXu0mjf1kCtz diff --git a/images/icons/medal_silver_2.png b/images/icons/medal_silver_2.png deleted file mode 100755 index 2e0fe75c904b499fbe379a709f324babc75d1aa9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 600 zcmV-e0;m0nP)PbXFR5;6Z zQax)TQ53y1k)0Vo8W9xy1?kpenZ_pNZnOCdDS}O!KnerFBCud(uPZEUtA%Bng%uLr3#se)N9A-Q{mh)+9g~oN*B0mQ00Qh~4);e4nc&Zv^m=46z_kM79tp7M*R_ zo`9|{7z!AW1VcAbgo7Wj2sAg2EU>~fa@hM0P~i6O*r}alzQTvl1dZvy1OqQv!a~g9 z&(m|nc~{`(tGm0gnqy8Y&M(IN~Q9!mjPp}n#<)1^Z6V+&w~JiB#;1}f$O@_eyLO{pqpwe zL?o5T4RuB*uiXh!Y`I)QDwP6sP>yBb`+kDl1Kga+ zK;_+~eL2@OEpkZQLjnW3KP4@@s-Qi~vS2cqklR5_0Pj^F4u_6unvhH;_cEZ)6kZ~c zfNr=_g-)mA;NPk>o6YYB1!y!H4I4$O*riN= mhQh_78DfB_w_2?SmH!XLe!dG_KsR0h0000Ibg? diff --git a/images/icons/medal_silver_3.png b/images/icons/medal_silver_3.png deleted file mode 100755 index e385b5467346b43eb436ef98bd9d4ee41d9fdb79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 597 zcmV-b0;>IqP)tuPEh$A>RJ!n2QW;OG4eBo9Fd zsUQ)YODG>7!sWMLFt|LmbWIYBkV1fzA#nCs$TwfXH{e9dg;^3M*mh%LQ)Cox37-%o zA`0-(^BElFY+!2uAzNZvP3EJe%Kd(M`n$s6NbZ~!#Te$6bi+~VgbwLQV|dm zi3HfTt{Zgq^L^aiziI`L- zHPjiEY`YUQndf#Uznt%%8?*KPv+E6{a zmao^AWhsS}yNjSt^OMuMs|ngmr_(T*Oh|1%Mu2nG2ZO;ll}bS-lZkjhoyojpG6~&o zcZ>w}*gK$Tx7+8aq~4dX$*UcXbgFbNF+Y)(tt)yc6D_{WLbu$X|U)87#IOtLseCN zAB)8zG);1!h?Ep(ld#SvQ@z=p!6mC!s|W^zpb6spR>)?vR!>ilSS%KK5n42G&-tG@ zd@p{1tW}_B+e$?(KY96h=@A#PLC@nRw|X~TTF;^+e#1!o0*-bb$4q`Yw6Hw)aCqX# zA-)2QRo?lfo4dQ?GymzwJDfW)2urju7`*~ZFfe@PB1^yN63nyxnbL08R+QvlXcr`0 zJ$Z{axpV0SjvYSBLZ8@t=c&cT#Z8~jhd>~(O9Md=AgdMRH?o*YkMnO+ug9^r^_7=; zCMPE`Ffg#5%jM+N)z$OSXjJOx=zt_iTy?+SkBa<LMIcKp14eyUq)Kd1$B(lLIj2IeBs$f@-Hvy&}y1Tc%uLS002ov JPDHLkV1o5RML+-m diff --git a/images/icons/medal_silver_delete.png b/images/icons/medal_silver_delete.png deleted file mode 100755 index 06cab467904647ac915ed1d80286709b793d616b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 714 zcmV;*0yX`KP)3-Bct`_@l$aK(2lbLuE;;m2Z0V_pBK-p-7ZLPg4qBv$^pvA|$i<6S zgP_nvvC$e3TM-XI4=sYRG{i*7kIioO$M|O5P1BY-@OU$`?|tuk-2$LiUKA+FAQmM43>-u6ko&In@1EQJ{VXr_*un z6NyBW*kq1~NI@yVL{v6~>TY#m9$2^AMIaCWF-RS0p-vdeUGzO)9_85NAF7^R(V&vUz{E7IxP^b z=HN-Yy?gY9?`=HAnVCyaw%5U)EWy9?43qJ3nKOQK#0A)({uhPP&g>5{ks389(J5fz z*8cqOoq}w$Ny(k_>gML=o}wu5`~3$rV2pu>!cafI04Pbn&G4J7RjUgvc9};#m&;uv zCM(HgG8zm9|GiF^MdRgTocOke)8q6{NL94!Ccf8X%h34p06?s4Hk%}n42hZ|3kh+l wr6$?N+@I2}QvbRjTP#kMe^SkKmx=vV@a|w4d?1G z{A&|1yzGF~TZ8KHTl_r*T3@s<=A;pUk6t|eFbv0%74?%+OlCdki0e@06yy3x1%Foo zZA8IP3kLWJ+!ohD8&$%-Xu;s38IP9-L1$fP3CnTSerf$50rgDty6Lr^*!3d)Z5bO| z-!b-f1e)3AZ8+nCGAzU8!LrRAB^VQ3$5hYdKYA07xLVs{S`MaSy~ut|Ll;xQn;C~< zTE=EZ#ZWme+JuKV0b`<5t|FFt=DRug$%=#6R&beFSRGVu!=XktGv>d{p(*$PrItbs zC%{@V&UayoG-zyPh^uwrJq0zft&6HKksgOU)PPF&4Gy0B97SX;1Yuth&KvTM@H8_D zI|j&k17#5C^Q5`mXHM}n5yer~ z1v@0vf}XSMShQ`!KZ;`Qm@#H#oe^ U8%xtYa{vGU07*qoM6N<$f()ing#Z8m diff --git a/images/icons/money_add.png b/images/icons/money_add.png deleted file mode 100755 index 588fa9d0783d81acbe040f068e8aae43809ba3ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 784 zcmV+r1MmEaP);YQ5ff;UfFtdJ+!s8dg;Nft@+ebwU*P=rQI}aqD!2(VVNRw7ex>S5eQ5K(*jaK z1G#95tuVE@GHJzFl8GEO@ zUBT+8B4M3rhjLVcx?nZ?zX%$}<%!!fZ3w&@gn7z<+CUX5eHH9~A|RF%mT3z1!L{Oq z|IGmOPc#sC%fWLOv;Rs^|45oJPa6<;>&5-oPB<2=s2UPrDBcgvgbLSPToiWavv(v= zj*1heDLwoIte#LpIWB>H!Gg{OGwv>R!WZ{I8W!P-{lfYm1oDx(_4a42#I6^spO^4u zYXiNr-B66xCBbVRNWwx~>df8TR)S%&`H(Ck`f8kPVQN)Jl?>PvH6s3T6{@HV-ZeMG zAt6;pe%D3h*>d(U1cphiNJcER#dHk#-m-((7Bk8eEFYF6!ND4;jM#_As2#qAY)giM zA)uBFv1U9Z4eDL)VrsoJZ-SiIR*lOruX!HVAxt z=$~rQzv6<>e-r1eSr8JEbYUv|b2j|Gd@qcYAo&%QKK@~8xOOYN7C@P&1cVS-=8W&8 z)5AHI%$l^a{Tof8Yfyza3|JN9YS3kFh^Nruf!#Pv>X09#!80qvudQToI zax_Pv4HYrUbf;&M*Zdlyq8?7_RmbIN@>OSd8gKHrfy5_j`{&+3^FIJn1i+n#6MyFb O00001KIqEP)qMo*Mh*; zd8}=$qVq*NBx99ZaL^2)i;wdy8SB4|pz_rwh=wb^H~8+;vno7N8diH65LymE?h(Nf z?1o^7PdOv2^&Hsx^e9?D<*TU>kx2Cu_h`6l!AN2YXlDu*JA_-XlSesY;^R2V9i>Rq zo|4c4R3z0zEe6SgIu}~$Ss%=(AttfqZV~zd-KcPuK_yFsJ9{676QeQ2j)l1J08S{A zVi=MUfq@kC&(-J;Jw|aq2hFb<(KgpiU=!`uRGo~MB}cG2ScAxn1L3YhOy(clY)y|* zFeIab-Bb$dNYqnxbX?=CehVhOJaY~lnQ>SlFqA0(HwKW!}E}Fo%mEf!{6?`Hxd@KqPe-D2Bz6fHeeuNe%wsQ7YxymHtCsikX7kp6pGprGeQG`X(cypEhrPES70s86nE z=+h39P4A`Nz3e!lFE?TR12-O@%Ayg--Gz~qs0~LFllSw8ayxPkWg9O{lV6p*-Fc6* k_mmRH5EYwBM8Q=52dt34J8}-iLjV8(07*qoM6N<$f?4fv82|tP diff --git a/images/icons/money_dollar.png b/images/icons/money_dollar.png deleted file mode 100755 index 59af163824c44be62dfbb06df9e71769563a33e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 630 zcmV-+0*U>JP)!DK;9Y=n` ztyZT|d*HtN4z^AtY@ehNsx1Av5@058(+4Yyzw@m$wtszqQ04yGbJhSW-PK+Sn9kpy z6c5&sKH5aCB||O zo)n!;Re(Lq>NlD(Y>~Mm^&rNjF{+zqQYLCFW%O8ObHbFoO{oHG8H;vpFN|zULKkF} znE;czLyw9^s&5nLicTfoh(h`)V!g47a4i6T`6XNhM{_uCpf3fOH)+aUm{Pd%0$HCQ zD`b=e=_a}-!2e?bhS(t8*Bx}jxG|(Bs-8zXGwpDVhfpKF$YwKX2WZW0hO6n{GpNkbaQ6*W`Eo;3}_R5=XK< z0YsI0n43^|QWPahLjCo*dA`zf@Kp|7fal9I=-yn{U+4i*ot*tN)m|#kBeuVS2r=(P z$&2x{rKt;Dqx=3$7Mb}P++9YHsIwW%;gx^mfN*2lS#X?@Zq5b--LhKUKO1nouBZGU QkpKVy07*qoM6N<$f-OlOxc~qF diff --git a/images/icons/money_euro.png b/images/icons/money_euro.png deleted file mode 100755 index b322ba9296ace62bce4768154d1d451b9df80066..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 605 zcmV-j0;2tiP)sEfkJ^DF^$1U^B4aT>wGyd_KRG3vZ26WF5%bR^MyEuu}!xvI7 zQ4}Uoe0wYvMUju7*jEvjh~~QmnJ%%90SQCmB9*gJSni~-bU}(xuT=+5g+%PHky=$b ztAtNLSnMEvw{i+rv0BowTGVPSi~WZvat{y|&Z~_L5?u;UhnclI<{p)vqxEUT<*BQz zvfi)z!DrXF*rA9oQM7h$yYT+pnbu*xRfYK$;(Lka*052{Pob5$<(3yn4BoU+h_@+x zjWTEN9@;zO2(O!)yifUEJ2BIPhREJWCnrPQoj|d77oF@Qw9+?S2`ddhQ_U#es#KOk rI$x!XulBQYygdf5{#9;h@W1*4h?>zEyRGj_00000NkvXXu0mjfeSH?O diff --git a/images/icons/money_pound.png b/images/icons/money_pound.png deleted file mode 100755 index b71136463797cbd9bbee7601fd27ee7f4c6bff02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 565 zcmV-50?Pe~P)~-Etk+scx`tkipse7HYewM-t*f6pyf05Vqlz=?Cx-0Cb?Vi*;@osiZSU+ z^MlKA`@6uHPjYa_ijgecBXjczsZ>Mi@*n=3>DY{yjc@Ll<4u5-uIkC+1B5~qe(Bm+ z;PP}WTC5-BG(>Ycrr0cP2>e(Vov||w@?{NPQqcRC1e-Pfm5JGwcv|N(6|e~fJ(I-# zDloE^U=A;IM9j24k1+6jQtwQ(^~)4tx?RN8H5RtL3JiJUu1H?PK~{sA>T3EHzIy}* zmsSzKc)+h{$!Hqb5*0IDhghg#C#B+dtZYJMtdcTDmQ(ayfK6N@D61f+)`{O^TU5>F zD|q=51{Xg7Sk*m2oNVGRwv#G4M?*~0FL87wP4|u}*gRCwJ{%hOFyI^y+h_dwx=&C* zPO9MKJFG`;;0{tS0gCx8iaCD)9m71|a0S+0Nv4YZV;!NihP@*VyRrsOxz2{eQ&bu=6;*0K>sc1K0N)?)o3UDjKX9=-hzDU3LGfw^jbPZm~2VXaK~yc|hm3 z{CAn)*q^jA?tbg8#{c#mw*7bm5g7w*Eoj-@@V|X;%m4lZz5h$r7rnQvH5VY-01z(O zRPcYwp-KOH_jUizSe|yDU^IgLKQC~9>87Ip#TyF#*Ke==Kk2}P|I-gm{ok^^`G5BE zjQ?57(*Nfz&v}W{fPhK<4So}R8+`k`8^k&t94FzhQIz{|S5h|M&0i`(L}E z>VL}or2k3t6aNEUxDTfRZf$N2uB|Q&Am@h73_Z}ZtNVZUvW(9`QvwfIS6Ve#mRmMh zl$#Uh1-n|?hMZ;D|HEg7-M6f;B+d&I zlf7$HK@h-y`|e%TykI^w7?PY_EJaAPQ54c>8q53x3fJksAZa2BCYUM*sVua!l3=50 z1dSH9NARmNLGvZv<-M8Rv3QsB1}{LI`;8@!q4VZC%_V z($)|W@MebM6lV#a& zfU34!!f@p@U7a0N`V)>GiP;fDG$0YU$1qc=n0xaYRSAaA#PbPt+vx8D8 zB67J83x@zGq~M&(A%HnYBlWn*@^>KYPa(@PqEZCFm(QR6T7^0eIoK=XlUq$sy&MG<48XIWqWo>Z&VtMl{o y&kv0NU}|dWorsL?pTgE;zOB`27yg*S|Hv=)vtlNu1or3v0000LLgQ-DDLPW}%f1vx-$*I7)nw zfcOL-13nN51fSzuPw%;K2WgWo(hFy1bAI3VopUb-0Nis+mgRTP0@LZVJ|2(TBuVN& z+EA%fUX@BES3aM=&1SO_aeA}o`uduja5${`{r8$SgJ{Xf~Tbl0moIh539=3k7k0hr@BL z31l*v6h>rm(PgvQz-%_7bK^2GKBhxqVhC2NHLeLH5{diea;bsnvREvrBMKvce}u`E zg2iIl7>&lanm|$%@6in#7|0w)qY)KsG#Vg^A_#&|Ch+0@&2hPl3mJES?)xCRvYE+s z-4Xcgu}8<%1@onPeh#Z-k^REHGlaqtS+3C&f+gG|YbRG-_ zK;8rdgF)bV{)@q2&^;-DALaP?p!n(Ir6dUQ6>oa5+wDEF=^rMO>F8guCh$M?8yO%b UQwmBS=l}o!07*qoM6N<$g0ICJX#fBK diff --git a/images/icons/mouse_add.png b/images/icons/mouse_add.png deleted file mode 100755 index 65bcab520632ccbd540ded7e01c30af31671dffc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 729 zcmV;~0w(>5P) zlih1laTv!H#vr0UAo>ToDcDs6-9&T|1YL9y!5A}ay|RSVC5g70p24(@bj2Xpi0wir zjT4pbI4^u*zOW1N6*L835E%?N=kZ;ie$S7NNp%tX!NZSpc)s87=Xp3s1OTFwmdE3{ zb|RtQ?;mx!TxynO%l~XhBob$0v6wy_4(|nnL6#(48A=_qlVh{l__ejQzs2!*{1g%I z6$%A7K0bzWxeTFD2pkT_w$tfcBB|L_Dg{2D4~$0R#-GWf(P(rxm&*a3e!maGNhXtE zwOV;X049^^fMJ+vwOV~z5Q<5|R3s89WV2c5bUM)M^{4^X;o%|hJP)N(3Cw0Q==J(> zrBXSHT0|C;`kc?_DKZKW8=KqhHXuzporYSiMol@61D#H%5U53DQLhAK0UHT2nG6sz zC>D#*Xf$Y{AvcLeE)(&Q4vk45s8lM~z`*Tx@3&g5 zfe=%g%_dDmV-(OQ zrUbsmmLXi?VA1&)?krw_OHa-kM4^=x5AFcdhlQ9b%sjzd@3GM(U=#1?o(wzpVR7dH z8Z<=d8RaU!umEkZmkO%YDlHrfjn>!K;pWRR_#XQR!{v&*S@_3q}?we7-7i00000 LNkvXXu0mjf((yoF diff --git a/images/icons/mouse_delete.png b/images/icons/mouse_delete.png deleted file mode 100755 index 72865668cfe796ac531ec2d40a95871aa06da700..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 741 zcmV zlTT>UVHn4Mq8SlE-6H5PsAGrDb%@qF1Uv7t%Sd7oEeZe3khvOj&=4ZM>`>dmL0iLN z5dK*n{KGbFfla3{({PH|VmX~Zb^iPIJ}>;ns1C6Q9)9rhe!t((^YH!z0K!Q-5D4_1 zNVvAPru6xIMyJzR{O5&4B5^JrkDH^>=tejkcCw_K$5OAmSS>9riF0#ve~Y)aw$3o| zMlP4b!NCEF#Udh+2;6SBXJuvO6-&)*Z*LS9JjKyNB*=!b6-EJ3BC6h@k zE-s3U09LDYZ)$34#Ar00m4q^O;lbwSW-gP-pw()j)9G*n>izwFh@yx>p#YoB2D8~b zsMG0`q$Ok-Ysb#c4o4;dVbkSivk9U}rBbL?tK8J<^2w;5 z4EcN>^?IE*8PfbFlgV{tu)e+?B18$7Qrhh{YPA}lo0duVL`TLf5C((6cVyuA`*#ly z508YD(r7ezA{mo_zFCJA{=qBwbXx(}-P1ojeezLm5L{l~r8IJvgi>O;T;_&f-%cQ^ zxqxoBIG0HFN@gvCa<5!Oru1lbN9*MeO15tW&QK%xg7!V`F0l zw(0j8jb>1-R?C6|m&U`YtF3~*2fKz-NULP<^()%$KKZl%{sTh;mq%IRcfuwj64Uu_ XBDfTk2IT+r00000NkvXXu0mjfR~lRR diff --git a/images/icons/mouse_error.png b/images/icons/mouse_error.png deleted file mode 100755 index bcc156238bc7063b216201aac6c09da7cddcb4cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 790 zcmV+x1L^#UP) zlif>`VHn00M2PU8D2hIa(oQ0R2>*l*in0Si`Z}-(-B`|6$~H+f%Rxz$BlJX9Hqcz! zs=ZsfEi2n6?#tdy)|#7cu08v7SI_gthLlG>aPywr*LD5w3*IUKRXZJy;~IA)oS&bs z)$8?AtyUY^cEROx)j1pv#p2@Pg2iId(xg*cQtPMb(`YnlwOakZ*y(icqT+>6D1=lh zg-9dMB~)-7<0+n-Tc^eo!*3 z1byI5w-EP^H^nu9Qn8g-<~&?zCJy3wqjr%8sb<7EL{-NB9qA^B3=WQ z^&QAXUx4_U!71yJ;l)S<-oUCl>9RaLQ70I9#iHSKZ!hvjqkz9blaq-xxL;qvIxQ~q zqYY`#`M=}6L{Aw2Z+L`H_Z#jA27F6PjqgV59O>>7N@IocpGU!S{m4Zg3+ZX^MS4Pm z@FjukAV0O>x{v%a+&g?oxFgWqTw}j>byzDFbEEBTaqhwCB8mBtThk*Or5!}ax6Dfv zQVy(`NASL5|M<2)6UB>}l*fosew5H8LX*fx*+KH5^8leDqL=I=dhuTJPPE7P2dw8J UZ5DxR`v3p{07*qoM6N<$f`-p)3;+NC diff --git a/images/icons/music.png b/images/icons/music.png deleted file mode 100755 index a8b3ede3df956f8d505543b190bc8d1b5b4dce75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 385 zcmV-{0e=38P)klCE>?a@fNhGaV ftv%qM$TQzJ6;XjO8erVL00000NkvXXu0mjfw}q7O diff --git a/images/icons/new.png b/images/icons/new.png deleted file mode 100755 index 6a9bf0370708a165d3e49047c09e110e02074a53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 378 zcmV-=0fqjFP)Q51$RwCw?WgWe;0fi^vY%UagXRhyB(O=1wVPFJlYqlK$kNFcaSBrLFKHcpU( zVj5rP+%se7wuRup#~J3_|C@8?jsx6(aN8gV+_?~^wID=7QAmWo&=P9GzK~Bj7P?xU z4^LybJ-~;P$nL)ri2Lx-f?f?uyKtX3G(76UWeycgm{0H$eX9nWr+ASHH8>r~vom;o zFz$}vYpDI9TZYLgxm?Z}9nS!RQHI8Y*b~3AE}I>k|Ynq_|_kL0z^} zg`YWG?`i*VRiHt=)+fle*{;CjiLD9r5bPAPFRr!h8&+rODTKm>mjte|vSwTU#7zr+ Y0SIdSJYsEaB>(^b07*qoM6N<$g6XKB5dZ)H diff --git a/images/icons/newspaper.png b/images/icons/newspaper.png deleted file mode 100755 index 6a2ecce1b85eaa9084b427ee2c5226e2296eaeb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 658 zcmV;D0&V??P)oVs((xWgD$)EF}_d~6|E9cYZTvaqk~9`i&BW97*P>v z@lDk@Xl;b%^t%HQ(pa0tz@5kM+;h(T<_N&ip(~wEOB0DiJ{F5{;c!^;_xs1dg=jRo z3WY*KAQ0euKA+@K0;yC=8jr^rydICoSglqd_{QV$a4whY=|O=zI1-7hhr=Og4T=Ck z5O8*O_S@lbByBd^lf44TWKv2W^LH=<&(F_6aj;k{L?;9b7K?>5nM{(sFqO3)3}ZrBV@HFj%2boa`NCnylwer*m5<6vU%rtuL2L)a!Nd zJP*qIOD>n6?i;$@!fv-8Tdme9+l?I|%bm;R7`!3)<-bP$-VIIGvB6*%vHYw+%Da)t sWG@c=a1S2nbh=||dPK1BKbT#A0Qk`HN6lbD;Q#;t07*qoM6N<$f^gU==>Px# diff --git a/images/icons/note.gif b/images/icons/note.gif deleted file mode 100644 index ff2e700396486370cfa173d1a37bd30292e2e17d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 588 zcmV-S0<--`Nk%w1VGsZi0OooC^VVATa`u+Rw_1$;%-FEcZ zWccTu{`>Is+im^(@Zx;|{{8y->8$$dt?HOJ8SMEZ2b1y z_u+>B{rUX!)8>^m>!(%tz+XV-?rt78u#On@WX@o z?z-^Da_g^J>#s-j#f<2uOZUo>_~)GPvSskOdE|u=_TPZ}@yPk+w&tHQ^tyKBjUn;T zmFS*E_~n-M-+uV$qVv>I^3q88?Xvy*?)~@S`Rc0s?z;2VTlwv?_u+^8@4nx80Qv2- z^}>bw@WA1L3ijWB>Z48j@Wk-OZtJa8@wRU5yj$XoAmWT3_u+`+gA(-GZ1d7d?5thz z%6R_#@b0Kn`|i8ri5csJh{oJzYt2^$t zarx1l`t7pot6k}oEZ}_u_RN?6{`&v_{{R30000000000000000A^8LW004RbEC2ui z01yBW000N6fO>+1goTEOhAAU+6*Cx6Z#-BvB!qBzn3xa-mLV*wn9X@2dNJFN@fF(s9 a5Tf#<&4(>odX(uR<&G0XAVVGs1OPh_a!Zf^ diff --git a/images/icons/note.png b/images/icons/note.png deleted file mode 100755 index 244e6ca045c50a130086ac388b560a12761544b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 500 zcmV z!-sF!^gVb+8rtpyctW0#N6uWni0LCt_6PoOdbjll_d4>B|?abUmpo8>v>h}Zj|Ya;Eu#qwvU1IVc9khP8VrtAsT2=e83P~$#!xXbw)n}FlPSEe7Hq1uCb zR8w;xqmBrUgA^pnkB=O@-lq0DPz$ay0yh_~I_IDpzxRb(4=Iy9CT||k!08w)Pe>W4 zElmH8fF;68$GMwZ#7{4ozI(ySrR%I+xs4-G1q^UxnUV7rlf9>Rn&_6Wike0000Zj1^v+DeN+ z$wh@msTr8&gVYAi($s0panyAF{~70=7Bh|!8ANA$x!?JIoO6_j@IPe*ID7Z~6(AWX z0Cs{1f^FdIX=die(XkIi1XSQ#-1toaG7Gh|Dhn^t=uehFhvBJruwfNMfwJ0*%3} zdmXN~y{MvcRCEHN*b)W=wEhgx{on+}Y3*z&xIpA^6ONi@I-a?4yzFGd@jIkuWRa3& z51Gp3;wA=kO-X4(hKS_lx?HP#AD)tuTgcS-1Osgj>SHf6UiJ==)=)@21D0L@_4_%W y+#BcJk(yxLlbwRt%r{=w__?DuyFM+oU_Sv>Crl?v_;CpU00005TQ^(M5v$(QKVE?W+9X! z*o}&~6c?_FreF)9NJB7b5Nbn{G0n4+%uJhR9(V5R|NFTpb|HgjefT!tIhLx@DR+N) zV+fHiR5Yt19}k|KnCsND{tH-`IMJ)3AE?OtyZ4>Un|6(d%h#JK`i&a7^xW9>`yBy` zS4SOHeOpC7$?hH5-#7Rswiue_8Ju*2N@$58=a#2OTA3png`w3v->gWif7t%e$ z$NLVS!tFT#8WL|Wa&K~+{%4P2cRfwesYV1_!F=3OaRVHl(>=`%&{x*s30c}#CNE@&;ItrAv!f!)Oy$Q9t$uS=(sD$-J{T*^(8Eez1E-l3}} zPrfHZ1`qsIFe&gipuL8-IZbo2Yg{lFGKs?ZZWcOaOdk*3`5T;$?AjbG1#`B510Er^h2)2r3Y{!8_2Gj=$KzuN5 zaErtW8W_Y2iJJjY)5pmTVJoPJYpanPOEuYHclM^C1F>${hFRpdi8a<2H|Xudf78bm(zwJ9`K%6I?q*Ua~ fW9JvIbn5*B+_J)rUMBs>00000NkvXXu0mjfH&TkY diff --git a/images/icons/page.gif b/images/icons/page.gif deleted file mode 100644 index 5f39482edf9f0c1bcb659a775855c9c5d4927749..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1068 zcmd_p{ZA8T0KoC%&Co;^)Xgmmnn^Tb;*3A|!luJwv0`jhpxvBXOnGs$;LKEvMlpfz z024()>bqM6O;ku0hPZ5_#nJ-3mhv*%UKtkKUg?X_3bfbW%kx}s@$c~aCw!9c-hJZS zFG@3!OoZx0tUfLrrT?9QdM7P!HgBuauz(x!!cc@Vy4Zu=)QA_1&j3d-v8_^r2NKTN zc=2;;ErQqM)=Y?K1UO_;og?$8m|0M|PiSN=M- zKr#-0L|Kc@H88n-HYU(d$1 zQ}Nex@i58kZ!j9B8R0oS<^iq{Wg@_v`Iv=(jzGfXV{LvYX&5Tgzy*@_hABM2@jQ>b z$E{&flMtj6+4#=j-4jSUk9_m_KAWmGe@(f1pshl2(;!Eag%c|t601_r!13e3Lyh+` zJ{7K8rZyB^7D_BXSG0O`&1tgnrO595v<=zovkqWg^>r;N$J)_+l|q`6_oXkC6BFxH z*(un70yV2eqHo2|2%Tu4J~d@?zfwQgCXjxzdCPf3sH@L-u;lx@L}vZE-*SXeHcT|3MYNe{JbkDlRO_eiAh)$K3bfn;`2x`0{$||0Mr?Sh%X!_v~a}L`K zZS6AUiE&0>Rv=h@G4FwZ=qh=%zBR8ph+x+qfBYn8>FIQ_{)y!FXF?=N|I0@OyE<~K YtpRb}{0CVw!Bd66+)~(?oQ&-FA60S)R{#J2 diff --git a/images/icons/page.png b/images/icons/page.png deleted file mode 100755 index 03ddd799fa0a3aec561c75d4221f195db65d6eb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 635 zcmV->0)+jEP);68^d)m`eN0o>(5%D`Q(1;j>g@G;xlf`0VBQ`PFY?6)!N&f?*K}$p; zB!U=NBn{eB8${1}&-2_L*HuZp@ZP1@clS@cHp)4iM1ewzw59vko7eMM{e9z|%NNdX z0V;`?KKSzTCvTm5bc{L^CIKLUxc2X{i{ISz$8Sgf{q)1nXTP{`{s?9mQ$4&hPiKC- zY8q7(Y1Xu5iCf33=O4Vy(+|zQ?rW#gkKB0f%}?+6{G*qT22|DQB-73`YzA{N4W^=s zq0kQYcbtFfz zLz)H<&|z(Y4kJE8eNwPZM{C0XR2_&|mtpbw;SDm?JKLv{bgeg1*(=ljEFcR_yk*3uLp z1;CmC`#58EMe!E3#HWZm*sa2h3di$pE(wTgDS#jds^G*=4MwF!B0C|6{0BH{AdecR4uK%>-D z7`Gv`17Y}eJt36%$C=VfuEU8oI65*JJ5aY~z)$~+;;%p9dqr;@Uq>Gf;uOQVWG;G!z4Z`h z&CCrr@u<^R+35aN37I~|MkZpo$+2)GD0VeSu!2gnTg3SVeW?=QV_urZT<|TkbNwapT`1Q}=MWy$Iw!tDOVXvF> zlh(KJ`;AXQVbIFfB$shNY8{!Hloir9)j1bdvQp;@%xq5D{C>?Q_0nImb&8z|_MO^O zS0%Rx9{jj%f9r20~T$1G!@19X37*tLMsP-?5N~g{hWw#j?d4c8LK{EKA-o z=ibDaRh7OrRZx}G30nWmJ$5uZ=R8X?!ml3csL#7wn=C(b)BV+&C1G(IGq23eOO*?L zFH~7252Sw=)Es;QM*S9&gJW@X<8!D>vFxuhPw;$ m)2j5Kx1|1ug^M-?XNa_>%}M6s1zKH&W_eNu*N{99*!~5X!TH|+ diff --git a/images/icons/page_add.png b/images/icons/page_add.png deleted file mode 100755 index d5bfa0719bc3a2ce4fc529403f0acd6b6057c956..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 739 zcmV<90v!E`P)BG67=JY6c|L1R-#TR>fC$3^Y%QEnYO1xHsf)+GU`3F<{J0kR(;pbF3)zyg$H+idfnl-wl5Wkh!vUH z4Z32YP=l_}1rZd1W_D&^$A($A+&a0e&P?xx0!ctY2}*<#p+qPVN*B(YzvAWXa*%bzq z7Fz41LKILT(GWohi9|LgIzSZBhb*Zf6R6O}WYQ4GOi&71s9lmll0x6;8&ILOl$j(c z0Z1T(6Tg09{?wd{moFHNN6PS?$|e>1MxSJ(0Z7o2)J-Zv|>acY@f`(Y@g7GwsEj5NLQo+q|HsxQ5}XSX_d@*^A9ZT9=A{W~j+$GyI1 zc4oqTHx@1FlRjw4XWyPN5i2~l_F3@aBk!0yu^aoRDvXy}8@HCjUVQUsuSH4$T5|r< zzZOn^?Wfa6y|Q($Hx4{ws+)wX6-HP4zo!S?4KJ@7PG@G3G{CjXs(p*kIrj6rHs7_y z+=<-=Q62s9FuWa^X~WKgJIAAZJR&XBB002ovPDHLkV1jCMPILeO diff --git a/images/icons/page_attach.png b/images/icons/page_attach.png deleted file mode 100755 index 89ee2da0753040d1ba0a3487473a715a8fe89322..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 794 zcmV+#1LgdQP)i_t#ewV_0K6;=bl;e_Jt7$~$sQ)q$+ia<4Ec+jeaGt9oWH@O|2`W6&O0t!k{B9sUvLWxkCaPsd9W(`fa z;j-|^ZI^2XnzhgZWYRW-kP&J>DWPo`%;JaBX}or79k=+Jo@h%4Eo72tqev+cB?PjP zO<|ByL#>Tehyq$jR74O$B9WDW1`tK`LzYyL3A9iAcRxLkJ`I)n}v%Od-3H>j$OTBtk>(k-9o?8PqI=0 zB&f-+KOXVnjyKJlf4iHOtnuiE_4+ZVJ$dHjU<^o^YCjQ-wt^!;rPpBv(@pFO{9rdw98 z_s@3+yta93oyfL>7AD5}r=|`zS3Gm$_|(iSl8XBd9k%=91J0j2=ivT5cJ18ZmDjh{ z$-RMd{jQ#X79#Sc diff --git a/images/icons/page_code.png b/images/icons/page_code.png deleted file mode 100755 index f7ea90419d950f9e69d977a1f5847456d96a5f0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 818 zcmV-21I_%2P)@LCln44|RX7Ti z0HI3&7jPq){odH{?_{%nYVq_;n_c4WbUpvU(&Cvnj!vq|kVC-vpF6vp^;;e0mm6HW z+WPzA`AZ|;pPp$&dNjzrc??4rt`k%Q1l*u-BPD0MQ}Fbm8jnsyezNt7+u{23>t7Em zJtETY?ja9KrVs^!LJ$xEMF3-bAZO;-IQJavE60KA7fO$VY_%N)R6s>g5mW>fL4&aR z*EVgKKTBXm!=L?S0?xM zYqL@C$|EDF2q*3zWW7;PDZ}SK*IE8;i!3U62=qn80C&*I1Le7WwNP5EcX;_oh2dJn zf#HgBe4@r$GcjHjmj2vAfT%(YN?}kK=(*+1*DkNNc1H5R++vfBMhACi<5uFUU+N4+ z<&U*CPmWi}REa7C6-t>2im1CWv5Jkefxa6>)dEj-CAW wWa{_}BJ!}~75?MkfaCnj>Dn=~vkLS70Pk`;z)@TQj{pDw07*qoM6N<$f@imYHUIzs diff --git a/images/icons/page_copy.gif b/images/icons/page_copy.gif deleted file mode 100644 index 088f66b1c1c63a66a6ea7147c275775354d19103..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1041 zcmeH`+e=e%0LM>ZqGhqPI}r^uW(Y+TW%o$z9+_nt5k*3DQAlm$D?ubk z!hqZ}5{GYD$Ai#CL7N9sG(SwjUlhb9VZR6bAVu5@s&rV0_N3SCqd`q8R;|Y^zqw0V%+Cnu zq%cT;D=m22XR1v8{bCD>lYmKy@g#3`b954#Jls*0wRa@WBt@Mm*yrM~$!QrFiHj5? z1X*E<;iqW62WRbG-p7bv$9a_CZ$BEU?Zm4zsCg_IOG1_twLPvEW-pV3RE#$c$BXMM zx*iXc~&^-q9n4;@69 zd;H!LO^8mvP_4oJQ9c+05JEaJolCGy@Qu$#DJH5iI3sZ|Fu}V6@hOI@Ya0s3MUoay z+_7JI;3!wxUZPAQ1x%wU&8I*(&Nsg$LM*V3b96#HrnFvc!R>C&7v%!1;H2Q;Tej~6 zsO`XpeZmka9G6?`y6}!~AvOiHAH3!3i;+0KkwH}*_ zfuBBb;oc9shc8pu#sYA}KdlUr|NB=!no662AO@u1FZlZjBqM~l9dE`js2aB(C}=%t z8N9z_L*w<^9?X=!VEf#~wcVOC^Rt%it1p__j4n{_nsd@pxbCSu_fXza2Vy=emoC&G zh^#LoTc2-OyHbvHppt@$gMkcGnzLl%n*FA|rY}wEtcS8pedKdP){gzaz&1!v*`6X^WOFqvvNCUROYLn ztd==l849&UKX=~d!q#ZJLw+<}BDo&vAhhX*lIP;?uH03#UzO(gx*rp=O!eya{39Q~ WF5Z?`dg?~@&XRia?)tPeWXm56q5Xsa diff --git a/images/icons/page_copy.png b/images/icons/page_copy.png deleted file mode 100755 index 195dc6d6c365d298e466026b37c1959d96119ea7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 663 zcmV;I0%-k-P)^@R5;6Z z(>-WZK@^7J_sq=QY_e{46@P+~LNG}sRzZsxQHvCsN*h5ir6^j7pq-$xu$N#V1gx}9 zClV7;5)7zih-s3DB)G=7|99>ji@So7-P24n=VQ(@GctDX!^_@$bj%oviY6e4Dh;od zooe%Wvs8LEKQ&&bL&@bwi=STIAI@!-gB2jC5+?y?VR~VkrNxam-`6*8&po|RZ5LpS zNKdJ%c4bTX`XjKsnecf%W>1%6WT?pKNdLLq{=(f(Col?P1+oq@R>)W(n=x!|*BIIh z6DJGw_w`)u6yN|vAhMteYK5#b%r5^v+VCFl1IGssaclZZMS{vs-LJ2$)n7DAr6==K z<29#%AXsBsDoO}SBaXR#_Ap!JKx)(1)3O2pj0_dYWz5By*X74fRT01$Fk%P_RzOMDtV?GU{nsYq#K8iy zb6qzLYDj`_f5$BwC*WE(t0m#xYJ*=jC2|HQYHh=pf#QG7oowi`h!L!{DB$8|qY{~X zu8@sU1tWq;n$XThR0%;45mdqXM892|{CJ@0DS*}>?ami06Q_^tvM~Y3K(_-`#m!8f z8f!QIrH4y#61;0Ym0cCoLl8{IPombPHtnn7%SbTdI&G-d>ZQo!_wBMF9nzX!g8HVY xYTJPGciz9XMh3w2fmZ(7v{)r*QZD48?mrio{~IaoqP z|1Ep}yDQG09bP~E^Dk?@JiKQJ z6-pO(3~IOP)IYisL6D6;oAEd;E%zR}{U$rMRNuD6nQV7nesKS>)yLo7JuDCrD>Abi zbj3uW23?^GA}9jQ{M^8v?ejL?HaT7AX5WPZNkBmfN`w-jL?{tT7ykZt$%Yln?p_m~ z-?>&d(LD(jAd}h=LPltPQbO$*Wbyl@G-_k5jXbb#qffHY03>M1jfEqoPJQ6Mr=Byp=^jfzePZV1 zLjCmNi31hdIJHa%e;5g=1(`u3BRzfeExY%=VCu{loOr{`%2hUR*x>tL^W_TTaj);0 zpPR6CUD1+0>4TQ6zVfH3TQ;%l6#(_%yspK@3gcmG#Q4!WCPyLU93nMKk7E2pcA=l45({2jNho>sdF*A~bA zxX?-cp~y_z_kFf+yqu3m#QiB}03?Z&9vvR5TNgj<)($Vm)xq5G>|o2sFMag&6aNF+ WAT1?sQBYt20000iHtsh1EzPArg^Q zIZrOk#rNsfjaSbMAL;<4h;Z=jvu8dzyz8N&Nb7=z03ZUw?9z%8KQEa6yM5=kUnka& z3?FJk2}L7q>na=T#;<7U*P91xfF`;`6%pVgWgRy0?1ZryL@%z52=-!fGXWGEn4M351L4<+7eDgwo|moqXT+s1&Kmn>-uQQ8mL7XY)w5Zk*(g+<3Y3tmkR!bL zOUKaUtj_pX26sH+=Iorwu}MGd`_%O-_sS}8VpG#fJA)Fcs#ezwtZf?q?Ac70mDv`rVs{$od?VPKeqf<-kUjNtS6ecB*mq<&M97K^6IVsDO zt2$Ru!b+>2S<}_H>$RcInusU_8PMNdf(W{sNlJ3FkrwMJPeBPO#d}Y^a{9TH(#{Y) l0D?dWAV4eUJX#h`!2gmISk&ZKd4B)^002ovPDHLkV1g&sd|Lnj diff --git a/images/icons/page_error.png b/images/icons/page_error.png deleted file mode 100755 index f07f449a44ff2761bfc7b752db3d08d0e1238b02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 793 zcmV+!1LpjRP)lHwhvrAu0-@MQwt}+5~MQTtu}C0%;W( z1<{R?aHBz*g;pk%AyQVBR_Zu5m~;ES_vxI-O!vIF|H*|T{l`n#garr?$RMk>)?Y48 z(ZF2yTneKb};DNWF+jK)IF`6_IfJ{i|F3o%Q+l&4_HGBD|ACE8na_6>L z=s{^>-C(a7J$6=8A_%h5W!1K6dcL!D?XX+Ndk)oei?UundDpX_E&1Y&`)3P8#Ny0s z2Ag7_&ZPhyGj%)g&S6V2LNun1;iBQm#Fwlfv zgyESZR$X}2P;=RW!2zid1r$hBL{K7>2qi*f7>pT1=RdT3@-anEoH{ z={KFOO;Dh#bV*jaN>}M>RZqQd`S=6O9C3KpI~I>l%QFYfo;jqQYe5fcn`)+)zMm6P z4X&L(>gnN0!%J4^rhX->?$S5bY<=GEU%jc!KLL8sww-Eg;h z`H-yBHa)yfojYT}&G*GFc$<(Yja_q=lZvj66DC^O5%$B)|Z(CeD=n`|eM04SP; z>-=-l+xdJjA~vR6^xB#o{ehf~tSM`iwaQv$O<8NIHA}W_WOw*~ XD^gE}t;YAo00000NkvXXu0mjfl6ZQ> diff --git a/images/icons/page_excel.gif b/images/icons/page_excel.gif deleted file mode 100644 index d004013b30448fe00c0293da115372c46b154dda..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1060 zcmd_p{Zo<$0KoBwi8ozaGyP?mx7FIZ?%H)bJ++tJ28n@5mL@7QFHJ(l#>s@`I=dbj zQ%BMsCxW+JC)w>>o1QWBGIR$#ArA^|Rx@)LZ|3C-OW}d%;dvfo*Wa=4fAIO?%g#G` z;9yk}kOW|QAP~YWE}REVWz~;YcNY`n=1P#Td5E0Gd7$aZ9kj5xXJ zT8Ug5_KN$;GwY1@XGAV&bNZ-?PR^OGV|5yr(@#46RB1=a$b7HENAbS5-tW4@Z7~up!W%gk5L|BZn-0yN8tCtPtz?m-If# z^(qvn9A47lvMNlXPo!p!;*fKRI?-_tUWf)z;k_P-6K- zxbCMv|3z`TkAw_R^_8jP7h$31RAb-yL8M=6|4M28B3GU@vq;5aG2s8vt|*-b0D9n~ zSKL=m00}YRTzsN|12R+I|5QDHilNEjtAU=CxV{@{^xRsO==r*%J#I_E#KFQuMM}=L z^afV7Fz(&Ac*FFBF!*|Weu-e&JFH|VlliOw`0X3!Ek(x!o%|Vd0`1Lop`k1&NV!sQ zK``iDOnkKOweKd?l5HTXw-8E;479-AKQs3hyAF7Eo8D$`4b6?2cCu45^IE|Ti`BH7 zKbXn^EN!%8W<_clZeSF}^Seg5GrpPv-5&PVuiMQ_C*EmO4%}19ekr)d{jJ27+z;z^ z9MU&Vi|N)~Y23TA&vq_C?ahdKqhFO_H1|Vn1E?(=|cjAh_&P}y{{^`u< zcYD@PK?$)4i~7o9*6F_$F$4lR(d4AAvrez^(88Hk+)+B7E)M3jc=Ewl4$S^`_qwSF zA%qz@=c2EOsz@0qB1IqsqJU)HaG&+}%`-OM8YqW{K85hqj@4&V9vz!Cm_n0-W#f;# zeEpJde%vdgRn5?(+PY=W*z~|lT2-mtown({ll8&3S5+lWz5K}LTRW{k{eJn3Qz!SU zQ`@qI_n2;K?RG~pYJ9=dj-RWgG;P&wEuoAxL~Q)<>x0b=dED^Outj&xQ^rA;u3pw| zca_ClTh_d9cxXg_U!lLRl0`xU@$=UXO|_dRdtXfKwPawmnf(LC7u}-U>8k6}3u|{8 zs9LHr>MIJZGD^r9h|q2yF24Wuh+PM^yMN9GP1$khlDkdyCY}D{kg}jEf-(kW5jBY> z0rB29ZhG-r=i_R{;+1k0?A-sBM;AP6(k1i9ZuixR4?MqXOvphQgCYj~RnXKKL~J9Q zIDNz~XMfO{ZhUg&BTtMyXJqDVqc<x643?SvKHx004lTvR=0a5$dUw z>Xb470000$S;ka1sfH4I-R8njUol7M4dtApOahDylptpYswf1hD#CwFoz6oEA>(SIECU&IQ%a}GXdnC!9$70`0uH1B00000NkvXXu0mjf!8w72 diff --git a/images/icons/page_find.png b/images/icons/page_find.png deleted file mode 100755 index 2f193889f7ea091c292acdd684c595dcb206b5c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 879 zcmV-#1CacQP)@+1&aazfGU7ezSm^v zpACwO+tu0su66!(dT=`e05DeeCnCFJW(8|RKtKa{4LGONnx2V85A4m%PEQ?MEtR-esdM$pB-`H542D0)N2zSC6Imf)4L8?>%ZrW+H>xCKi$unm zvGZq-*Q%Aahx;C*=l+K%-?>XB)6TB$-L$r*`RUvlA`xP1NG2?)ge8@TQ4EN|Jks0u zcDg;oFC#-#R`YbWB`D?Q`1#y7l$LXhjSLf8AvQuB84}i#j0^!#g{VE#(K7h@5pFHy zSenl=@XBEdxp`h2Ji>CR%=qXJ7!e|?paKet-~;#ok#jETyeB(5&Bkhp;!+;51~G=) zH?L7xmDUu_h+a$+xuWom;AWW!mS$%%+436Rjc@}y?l1134kgD0AOf$OmjOR zstUlshZk$ZC!bAyIg{Y29z#&@3SJ;6D4+_eFume9^#TmMccC5u0J!ZCTnO6m$lnD| z5JeFHf`Xs~1vP>RLKI1GKDY<~pjr2&bi(fX;6Nj-ss@Ds0CcoO0H{JsEQkm{q03skAA);_bv3q{k31qwVo&s-q`Z?_e+j^w(WL? zl+uETs5+~xBU2};OqEE9ETLGwsMGe1%iTRNue)9}|0~E4B*@5#oRXZ9oRXZ9TqRep zPrGZuoOON4n@=uPbyP1y4G=+HktC6l(gZoFD>@_lXDrN?wo+zozGt3P=Qh+3L7+}q z2!WK7geXLnO3Vw;o12Skp%_E#+N#9;DDWP?Q-VS3B$v~Ha)dDzWn0zG~O(^_1!n0HYp-( z+;wPIdoFgQlpYV!10V>5@a)1LyGBMvoa}miyp(bxbMTM-FYNyx;V@TfYddyT00000 LNkvXXu0mjf90!wr diff --git a/images/icons/page_go.png b/images/icons/page_go.png deleted file mode 100755 index 80fe1ed0cc75fbb67e9398ae686641f8fb287238..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 779 zcmV+m1N8ifP)JNR2Ufr z!Apo%Wf%b9=l#x^8AolrB&K9H?Pg_|78WA8(M3toqE%3B#7*srcF`i*xhupr27%Nr ziguah1+mN)U5GNmyEfQ3-e%_i&-vb-Co#(>FJ+EhQEwjRYVQ(&UYy{U@%vbY||>@4x=B^vIqabI?L* z;-S&DS^V3-ni4^fl|HMkOEbgX)(390>A}|VIypb5Xee4g;7ck zwKh^A3Mi1Mh@eC$5lV!}Fw%sP623U`g3pd_Hr5sunLvTskx4}&Gm%Q6L}(l4x}jCe z*81q1_4-O*ffi~_nMslo?EQ8t*&Ec(pzEw$vc}pKn_Qp0>D7Jr>ATNC3w@9f|Y+U&+)#!t7l&wKp+nP{PQsb+fb=Yf!Fu&5j8vpRj{FT>jD z>d>$sx;A&+`n$HcF}&sYKSyR;=(=9tvvOj@hUG;~4qTYk^_@E=?$*^_pVh_bGnOt~ z;pEw)j{SK$XVc;qy181rT655gW9NG{(yeablViIL>cDI_ux8m>Pp{tY$J0lgo4#ax za?j0EA3s0S!f>{~ykN9h_RhM&g3K(E`q(dE(Rd49+%xMeR9{qlWnmd{s#(SQ>PmFtSQqUjAtB;_Vvt6}AS_5YgM`Uqu`yva+H8^=4U$e4gHb}u zAQ2N{V3A%pO|?Pv?tb6z=jC}SiRa$G^v3q?*6XcYz$p|cq{uLj@#~Fi`J(>5{@&&N zy%T^+;>8cXx%|o77anP?&W1?1A(>-T49z9pyeCl@7YI+Si zKti7=B~``}TImz(G{0PnlQA3P#MAd}sorMjkP!50B7$nAkU^%#nl{Q9lW0@}9fE-> zN(q7tRuiC_T1r|BBtVBTlQ2+70$Rf;eF`Z;lx46Cpu-rEgb)EBKq(b^W8l<^We(`D z43?0=01z<3G6+UUv6`CsWCk6^93!#+<;ws7007{zS3k2k9-zZKFO~(k`>s0y006+1 zgF_jyIhsL-`FMf~JL~C=cV75(CrJ|q;MVO961G=O zm9d)YpJg5g(4i_HKL75eSE}mq$Y}r}hyVdcV~p>6a}oXr80q`oj%+s700000NkvXX Hu0mjfPs|!l diff --git a/images/icons/page_key.png b/images/icons/page_key.png deleted file mode 100755 index d6626cb09eb11a298b90a8a27b0d8eab41f49a82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 801 zcmV++1K#|JP)$lC4gU2-`f*>nhR-;k6IP7e>YO!0^w)WK%3$w02v-#>5Ep64PCP| zJihT#O|N+nT7XR2h7dAB?UEAOhJF^mol1i`QtQB`HSY}RE7=r! z)zaVIHr5?>v2Gz&fdYw&2ug$!p+txby(aWZ7(4QT)l2`jX7eMQ{>)lG6ev(fWKxmH zOr%mM5$6B%u~qGtCf40#`mbGj3s!n+^%wnJ&#rl>g<4Z)lB5J6f!?|AP275)Zswr* z%T}4~{;_(?waU!#?JabbF3Cy-kf0{R{z}6$e=5yMQKt3BPcl2>zoTPMqMwF;3!_n|>sT?~bK_-2O_m+o>GJ6h zt=+g$4n7y%1qVJI7*5Yw(hqM=JusY{d}*?U(Oj*gT655eZ>Ksn(qrd7v3}DX1}C>` z+X+8@+4-pVq_fxG zlU}~Ye!0+%>J+pPk+0wV{GM$QaYM?5ux)w2z59=S&H2+K?;gH$bZGzL&g5>G ft+noNiyiPkP9r@8gT|RZ00000NkvXXu0mjfuqTIu diff --git a/images/icons/page_lightning.png b/images/icons/page_lightning.png deleted file mode 100755 index 7e568703d6432c530224e443771a04fc1e2e59c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 839 zcmV-N1GxN&P)73{`^;G#xwAtHz%LU)4b zqTRU=ve1RNa3QT=ZM7C`iJ~QFQ*9t7<~pX$d^7W%^M8FFCkcQj-~0ZRTBCB(J0^iD z-~e!d9LR`f3#|=(>$bPvx_D-~2jC%pJ=n_e_OK zeJ_2b-KdDDh@@UlzBSMC;EPygH_MwjWBnPGQegihBV73D?-x9PlHL9A=(Vg=8^d<4 z<9r=UkxuIm)*CO=9e###7PztDxUv}e?$0)rQicmYhV`pQ%S!g@;K(?TVfhM#E?bM| z=B0gfb6h@a8bf5FVT-SV~6}?X}9lK@@Yynoty&1zdZP@?RfODsl=2XzzU% zS8gIN43How+9%bK2S@Xbc`O>`z5`%^;pXGy8^4f>9^3!Sp@|O&)m;dOa3q6d;4P-l zca|=H_{G&m?D_+&-}r{u-J$5T=(X4R&)q|O^gN8cgv;s#@5sEPT5_Z)oFo9Ac>l+I zc4ng5zHpps|9)<_Rw>5bKzE(M1j)dFWI_%OH$BJSz0?T+02W0)_a>#vFqb!*d|5wB zzBUN|M&ty51O@=i?kiDrjQ{{}e|^rU?OS|RdxxP1p5mAw36cX72#`R6UsoeCQFI~! z0ATITp!vfeYyQ?Dr=^5BAshfEa0nB~JG?nUa2Aur006MC*<9`)86SPS(W^`H2n+xi ztOWohsFfVfVWrI7PSKW}BmkyPoj(-|J?ES|BGd-}fIxr{00@ANnO*ZR`#)pee4I5T Rmm>fG002ovPDHLkV1i|Hc$okI diff --git a/images/icons/page_link.png b/images/icons/page_link.png deleted file mode 100755 index 312eab0914ab59271384686255d1be913a6b3add..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 830 zcmV-E1Ht@>P)VWgGzD=Y79#JI$lhEn`|2MpRa?Bt#-nSD~P0P(mbVe{KrOBoKnSsk>m|ML{6l zBosu@om4j#WzNLRAk+{k1JRvL(MfE&vvbb->v>W{*z*1_uMP}0cIRX*?mz+wk%*#O z%0D-+$B*g1nRkvI+_3E8Pr1NC6@5M&4vWaLCnNlr;lNlr4i91z&)eBGqL{L{GNu;Fof}GS9{gM5BJuH;2QWk8yuOZdB3pGR#s8bd~ zAmt<>3Q=YH$t5YJ5;7@+8Uh6=ktBgY6#6Pa%2F?h910?U8cLT43KAj$Z1*==ra&gILO{WkHfs(--F=bly9l~${z@AT>V$oat!YAD@M zBE0v_F{`g#^wOSP-u~!wvlmXdd*uqFqoZ0^{&nEMDU+=!>({S0wrQhFmoB}Yq1)~0 z^{A)L8Xjzdr(W4_exYO6u3a{4*kIeXZMJUR>Q=ksjW_p!rAwDKYUs90>6Q|C>56o@ zbrSq^Xk7Gq#>dAsn@un`Hz$?w$;Ss`%jV7L%9ShgHFV~C)6M>B`Tp%|nqPc&G*A3| z)Qe+}vT4-x^t1~XE@(6wR;^lPWMo9n*~E!cy~)YRsT2{`?fqeIw-e7N@mOA%UcCIq z_kH(_EK7|>pM*1Wt2^DaDAp|cvp*@(ZZDKpYkKC^?97(`0sb&XTXy7N#sB~S07*qo IM6N<$f;YmCWB>pF diff --git a/images/icons/page_paintbrush.png b/images/icons/page_paintbrush.png deleted file mode 100755 index 246a2f0b426faa0c7f5ba009e32b1deaf88d1288..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 813 zcmV+|1JeA7P)otxGRZMDZ!_a~nK|b_-`n%VosaL{KDuPV10`(1LIen8kX2Xff$3BE zah#djvFGJ&eE^89Pk*-O^+&d>FC~^GjRYVQ(uuPJyS|-v?9lxA-+tM5>1Qu*n+Ir1 z6KhA>X4$XDH6?-|E5oe1E?pQ5-M;2xw_ex!x}I2+b=}mPFW$U%^;o(Zg*LP!K^1kP%8ynsD^= z1y^6xD1#GLjO{VLdh@0GKY7;d$+NGukV)GRLPn^=q=dF%B#XaJrNP`0E6=}e&Gj3d zKJbQre*WXt!60_DnIzgMQc6S#fvjXxsE1v7;T;njHkdy2miIqAS(nX~o%cO+q+b#h z5tIleLWvL=dQE8OC#{%y*Tnku&K`Tuub&_ELI0t_ea{@3f>Jv&sYqld(%}3_GY3Dm z;O{3*Y?v^A`a|D;^qrM=ykI)U6QHd%WhO~VF!SGjGn0GOZrc3mGZudNl9{Q#X5&-F zuGwVReFLBjE5jr!!^-5*L%!I%PkYH#Hs5rMrEBl^)9)9XTD;xjHFxVZMc3~Dw6#k$ z(-S}RE$bgMHv6Z`mS5|u$$78sp4G-8b@lVkl`HtEv+MGn!F&bKcHPi$$oP_;=BrPf z$(~b3&p3CsuQxhoV$%jIR;`lB-s7FDX)xCTXuJ7ZyIQk96uIR=HBt%-P?N*bp`)EF zq14c}QM+O70NTOa@V~_)&GMZ$^cQDlkyOCa(H3Mf+6xhCuZh`VSN{cQBl5Ys9{cp( rh`2H3A^=GuC6HjQ*7|*0>;m{7QlnX3z3MSD00000NkvXXu0mjfR5FYo diff --git a/images/icons/page_paste.png b/images/icons/page_paste.png deleted file mode 100755 index 968f073fdddc1cc0f0800b1ac4001cd9a55f053d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 703 zcmV;w0zmzVP)AVs!l4K}n~L(tL`6d4Up4iSWnZ3Qg~4n+_J zDGk-qQdogO5JUtO-d5pRp7Nd7_r1^a|M&Zq%mn9Oe((|e0sw%Ur!K7T1pojj=U#f? zQM`qbQrM^DPkwa?DK_be^~z<~RgSMIa<`xP_4P7gg2jCwJ{9^k!fsU=#Ti|%I3p;>90Qd+7|~0h&mIklA#nb>ATL2+v$&u)OBgB z;nsHb)I&QRKeX40H~~cIZxCd}5C} z=79lXoXK%6YlyLtsV$~bSm?Upq|DJh#{|*a7XMm`4QJWZ>s6nL2R1|&J z0VPEwJ9?!n`o5PKAjc->P1Gi8BY*%!5&FVp=#)$mMJYul1Jton}gujiUf??eOy!x&!tsjxy;=Q3_DdcXx=a^OBhW0N~`A@4xB0a*%F? l+@c^sQA%W+?pa#c`9H5UNfS6T{e=Jk002ovPDHLkV1grvM=byV diff --git a/images/icons/page_red.png b/images/icons/page_red.png deleted file mode 100755 index 0b18247da5850f3c2486373a3e179acd2772e8aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 641 zcmV-{0)G98P);68^@7JE5sw#jpE*579S@TLkU(6yap1yN*Zuy>-hV%Q_v4Ar&!63c8OBr(ZRhFu z_kWs36-AmgZCT>x!RqM;Zu9tqvoHI~k@UmYo_g(*J3c%2{N8}7I+|qKPQzv}7t>%W zsu&9G)UmCzkDYSw{fBnuW4j;1fKV_nicw`$8C6D=F_qu`zUiK$2Oc?5UVY+D(`I@R zW`KlwqLftWHH3Z2_XVNfKn>VgT~k=@- z+N>c>0|@A_HbI9Jn`v0~7cfIF(TS69zaomDS1QtgvaBBfGEPLHccO2~3jc>n^6}^HAEh-2#VxC7YYcDXv!L9X= z-R*SOUvIs;n`8(LxP4~^2|JsiN^hq6cU}5dn4v1~Kl{eT7pm&f$PoY`hyVe%y8G*S bxB&kH@RuR86sIAS00000NkvXXu0mjfZBi!% diff --git a/images/icons/page_refresh.gif b/images/icons/page_refresh.gif deleted file mode 100644 index 8aff8cc85407ab34402f7e1272ec030ea4ec754b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1076 zcmd7R{Zo<$0KoAFPg`4dXWo_8Zaa0AwrZPOdN$h~nW@!CL9tm)@m;}LzLeA94V80L z=tRwzRfaEVVi|Jg&H0kUm*)XdX^a<_FCdDPx)2ebhvxxy{TKWG1)pEO;pf7FPA0km zZh&PHP^{WEwqPr2BUg!KE4Dz|V9GES!306&#JbTENF5|rKuWz`rMGWxBU4&z?u~iP z2*>tXm>}z46D(W7sGUifb#q_cIIh$g?@HKzD7G(Gi#JU0&qFuq!#5+#FG`ouX)XG< z4vS<%q9ru>j<`}(mR2DVsnIDNcA*^1AG$uJMFszK^~~}DG6$#w3CdM_w@`~O5Z-uR z82^NPrGpsV3l}^qF_@6`Erf7CkNH@>ZiFedl!%(_fqCU;*N%XT*31VpypbjHuObtS zMU@h+wHMJka_%V{I)jBkA17B$u5DSjESO(PxPB9ct#HN*TN3{}I!~G3@>hqP8(8Ge z>{BnkHpMq3<~+;PZdlU#t`ZwavCV`oW$WOq`JS{U<1wXIWu|bG&N9G-H)h4EeNuzU zR&8R9^?G-POozohw**l8-+C6{pYj@(*eZ1Qvh`(2;Dhm`(WSujV z+-<)9^#YqB^OG|@6L>$m#dd0ZPJRi@z3;`6pHR2Ufr z!EI=jWf;Km|8+n2IrHqe<9xxFVk)&(Nh?w$Xk`TAyvb=#e=0aySC z00NkRDM597_LiNIJ2M^qhuTvB004REvvU8@of{r?P8tmo3;+Pk0F0@*jAMhdOkS&1 zhJPPfQa;pP0|4+Yk%#j>X}o-s#EF1_DMV93FsfPP`G*>Ks>L&)Q}w2g%slu0kBfW1 z+*$*0BC^oTl6>OGIq(9BgG4|C90Dk-N_mPazGrQ7uHZ|>BLD!-KmZ)z1e^#?1Sf(M z!6m}K(^b|i%$TcA5bC}r$tAA?0C)g1@CgWliJ;NAk&ZF+-w#}$`-3nZ32C6IVKrHp zr+(!L2hRfF&AsTw>_@ z1y23;E%Oz}?q^Q2d($ayO;-sON2t7$w(Z|o0Pw1YnSp^}0PI+I5HnDNsFCA?oorkG z5sUIGIq=FSyxcj+xlhkm0en=52Bx3@02o12gdAU$_i?v6iyFMuc7P9#zQ-Hf; zVuV$t9P5`m)F2w1?t6{<8%wk{w-PP#Sj#%1MbsjrSI6n;D_@8q9`~W98dNQf$j=iI z6~hpgww&be%X_HI50Hhx@W==u4TLPB;ei-J-1}G8wH}|{i#Lk-WZAyfv}k4y0|fvU zZTy^$u6L>2nWo(NDSV2@MRD}JQ4(c%G%=dG@_vxH?>gcH#*Ue2HC}9sapf8X?R$Z;XEnm&g zW99mh)5jNw008mK8)r^`_{yH0rNn%u1|SpC(tjf#om=+r#lh+?Kb>DVb9`|C0Bvbv zN3U(>f4-tAC1hosRoA7p(b(hL*V}(j>ug<`&U)|l$6o$)!>PBQ9RQSwn9asj2p*|xhU*R^vq?*Twb0t!lm5}`yW5lRy-U0ZYK?8to!;o!r!XeOE$ z0HB3T+6EEoI4PlR=wonwqJ+TvCoWh&$?CAPVYcU= zD{DS0?AkOtb@-hh^ZLq~FMjxYf19X?pa_YqtgZGvv2TaxcF#KT?O%=_*a-kW_;N|D zakkWsOe!)HsT5WRBiC+p;N-c>0Qwy(1D2MDBC595oXSiR07)sKNk-%9*rDBOO^HUD zZW#;)R&EZpqha<(HK$(tZYU#V29<@0qCXgU{gXeGpc_|pTqQD-WO|}%yKZbeX7k*H z2W~CK$v8NBAq~czrc5A(v51g0Wma7`G8}f=ZcuAiYYxZan@gP(;Ku66M6?bquGiHe z3Q0ya)%Lvk@kLixZfZyU@#UFbv+>pYhcj8TRKSr_sWG8i^X~UA**LvbD3(_Lba3xm ziYcpup*A9qJ$?AA=Og05lndxfwr`!C+O~h|B~4 z01q8H`StcY);%&mId7_+)76ovRpeNWRp&4M?#jx@|E-)x%P*A6t^fc407*qoM6N<$ Ef@ddc(f|Me diff --git a/images/icons/page_white.png b/images/icons/page_white.png deleted file mode 100755 index 8b8b1ca0000bc8fa8d0379926736029f8fabe364..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^zbpD<_bdI{u9mbgZg z1m~xflqVLYGB~E>C#5QQ<|d}62BjvZR2H60wE-&H;pyTSqH(@-Vl>|&1p(LP>kg~E zYiz5X^`c$+%8#zC{u)yfe-5 zmgid={Z3k(ERKCKrE7DF;=x4^O+ pzO8rLO8p|Ip=x)jHOtWj`bJBmKdh_V<`47(gQu&X%Q~loCIFbEay|e6 diff --git a/images/icons/page_white_acrobat.png b/images/icons/page_white_acrobat.png deleted file mode 100755 index 8f8095e46fa4965700afe1f9d065d8a37b101676..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 591 zcmV-V0~O9lw>B8WRlD)Gm}Jrz31u-X&&gn2lvjs=i{7nIaL6v2==uw+8Lcs(8j27 z;|c`rmSv@Lx!heopGP^^Ieb3f=R!%Lpp$}iMS-&P3EJ)s48wrJ_Ni0~k|c47D2nj= z{jS6bt|kFpFf|p5cM`_&0Zh|`rfEp0(}=}lT#(6RpzAsUfxv^LSYX>WlAaN$>)*J5 z0#sE+JRUD8iT9*fz{)_^7@6P&!sEjTcD+I9Z4YjT1`wH@fV{cEvneYGFU%maIEU2s55&K(LixD|{p-uiS@?KNj zk-Go8G$hH6g002ovPDHLkV1hVj1#|!a diff --git a/images/icons/page_white_actionscript.png b/images/icons/page_white_actionscript.png deleted file mode 100755 index 159b24075191fc259cfd80c797a1b0d74c168422..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 664 zcmV;J0%!e+P)7Z7t2}reCh0o`+ zAlt$F2tW%oO@m<=(B8a-_VgLl#~yUMUDWG!0qFPppd^03e+x1WpkO1NhIaKD2A)-@ z=Py8(Wi%R%JtYZG#sTKH@6Z+&!S3Edf8jFJJNKuva#KJQD3X^7;H^fd2di znEN&c58aUG>`>P{Vqq$kLb+TP{?I!d4(|o59X_%|nVEZq2Rk60n7072SWJ{64CV?3 zgS!EB=eYxwQ>P2&$}(iT6UMvuFgHHIEdNA29!EBtg=v~X!DxxEH~}L2zn|52%xalaq@DTdhh{EVwv0IaQ=!?daer zTKp4I`l8SDt;d{8Q`5Ko;BXUi&oAG1l4}59P-{|^S(Rmord5s6qsh<&m@Ab^wqCD) zHyRD}lKLDzpYN&@q5&*47mGzGiqcXpmqR9#K|CH8kXS4RNs`(iEF%HjP%f8ItyaZK z6$%Apvsok(2>~dTO5jTZfq;N?0ch4l01f$k9?4{~Youl-#x{UDMr#AFIkz@SDwPtQ z$gQ^$2|*(Ps9LQiav_8o8Ne<=Zx1*M*syo80sEO1tB%>5 zfdHB`1z+!R@?ghPRKmL)hWEvZE$=*54ose*0JiUNTM_)cMDXhxEKg(?-pD=y<)L4J zT0dSyD0&NhJ$^_8Ko9uom%-ZM4BTM{Tw$9qyPj=-9W;N(Wi@3*-Q4pq`Gcp}^vvNr zyd&PsmG>fpCSZz?K}UIEd;HGgG%0MG>ymxKPwy{>wy(m*Atq7)0000~7 zMNw2LQirBVQoa8G3P(rY+l;L4iy+JwSqmy$9JlSkk z&*$^Eg+c)@!R|v4gdc8+TTn&eWHO0VD&>$!B%o;;WLf4CNs=Inq9d`xA4otCWHK38 zmc{pkX`0Y=9g3oGK{}lVy~OYL|C5lQ&U^l;wrg|7w=BcA9L4-r411?K7f`@348&rw zXD#uW)DK;H`hxO}u%=@Cj{;#u#_;bb1_KgUOT2Hp6;)MvC6P$vQP3=g1O5#aU%I!K zZ1dc@f}YvG&*Spnplm2rIp^VdA^HydZ0X1axdms2!RKi5x-SFA4p@ zC@N|PI$ryHL@t-(!zBsf2-+sYAukhDHU7Lxm88-p zDk^c;sHj}OKUc4lGZU}6umlGVNAJx0%sKDOFwQx|V2pVvxhYKe|L9TNk!~md3BVrm zYPDL8Hk*yU-ER3~LGwJ7N`0ZV&nOhBI{~~A;@ND*=kxg?#^W&`4u`zk?Mg_e)8XlK z`T#M+OaR1!<#Nf_>$S`xrqd}OjYhoJ>q)?3vEX8pY&I()ERjfjrXM$k7e+-Qs3Ihj zNyOuEQ2EGYG7ro!o6VOBQEwuV2z)*tR8>WxP{616FY)p1Pn1d}#9}cxolZC$4n(6- z35hJq0;FlHC{ zp*iF(lgUK(E`($(s9pJ8Kn?(M734H_63WHtf}6SQQ_MXEP!#0|&@>J8dL5TfG&tBw z#tYn{TCGZvAr>cca%YYn^!t73tg8OOJ2FvJ(`YpCyVZi*?Ur+1uUA$hAg8-aK)c;e zQ<)!XwHh|n&ND=$@^)>aF-`~n}#*WMkD*M|f8r$i*z7+W! qF|A!t*4fE(R`<_YIkN&?Jng?3oQ|aAqClPi0000t>5xmo{nArfL4CJwMMm+N`pQ3p^Le$?rMud6Rbxz!-yG7bz2z$^USP5(;udf(gfQ zG~f68y^)EvcNWp#bUoDt2=h+^%o-?-|mo~iieWqLNP<0m@2PTB7ftyb= z@H`K$>v9Pr5X`L|rw&CEN2(9SB7A2SE;d|j9@*F}sd(@*2l|P*fWfK>1drZUrtUA7 zNXO~pKn1cjf~~TLbje1g>EPPzN2GH#UIBxJ{}S9=E`{zs-w#hO?vcH+hJxroI5v?j zD!4lP0WXq8zUx3RAP@|Gq$}6wXCjFLZY^YSWBxN9#&g)ro$%5}aYn#y=tJ_aIT%4d z5d4u`rlp!};XGmbZkJE*kYJoi&N0pd*yxY{0${xD;;Q1h^8f$<07*qoM6N<$f(}t7 Ae*gdg diff --git a/images/icons/page_white_code.png b/images/icons/page_white_code.png deleted file mode 100755 index 0c76bd1297751b66230f74719504b2adb02b1615..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 603 zcmV-h0;K(kP)^~*-1fljz_B$LUvK}k?BNXe#Y!m=zM!!V#}8bncK5m;8VP zw86G*RI63?Cd%b9bX|ueNlZ|wR6rj|r_)VIP@r2imh3?SN+^{|kY%~8B{maJ@F*OK z&VH9LwOeGt#DRjj0~v~8`>iO7!Ybi;zE$va`A^T#yW`y44;k^#O~K5*jD=qcUhPSc zvyy~q;5H_1WT1l~cqje9yfa+l!hu6xjdOJ8s;8E^+=QQ$tw p?%p!Hy#YapB=@+^9(46X{{RQg%9y;OKjr`c002ovPDHLkV1g7l326WT diff --git a/images/icons/page_white_code_red.png b/images/icons/page_white_code_red.png deleted file mode 100755 index 87a69145075afd8f8fd8b391c5da1249ec8b2889..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 587 zcmV-R0<`^!P)LWh{^|hy<@Q*xw+qo|KpY<+vaXbbW{L4q( zTsjXEJvb}e%bgb=o%W0h?4u1;^bWTqH8}5Th002ovPDHLkV1nrS0P+9; diff --git a/images/icons/page_white_copy.png b/images/icons/page_white_copy.png deleted file mode 100755 index a9f31a278e17993d8d4e13beac2f9d5f7b42d08f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 309 zcmV-50m}Y~P)_YP)WjsQrp;}0X?Bxrvf12IKW8>3t`e~W9|JS<{btTNbNT@EQIWBSNJTX8AMGXD z-SsH|s#>j9Xf~VMtyT-YMD}5^SWHTY5->o`k|d#AE_YQd79j`%GMS7FNvG3b7^Vy9 zn0HYCJy5MyQLoqKnW|JOp-?D*<2V^msZ>BOv0ANd2n7t@{=V;sZrQ>3c})5_%ms4z z7!qXwHHe~!QFj8aR~&*-3F?O|;#(ESIXP~Os%|~y^7c15*q5`gz2-5ol!fU92NIGT z_ves+>+Tf3gfcL?!nimYmR}cw*|BGULzI^7!;k#3K^YO#;!+vM@N~(99+<;fdqr zYPJm+pXYFYk;neQyXXEcTQDNQx57i`Okp9A#n?<7!{#tnKJdsF>utb@JH7dU01gfL zEK2hoPZAnO5+je3&^i*hWM`qCW^vLK!O*?U-#IvXV?#6koWqrwnD{j&K`7N>^tR3G z8zr1(qVOzcF#nF1&0MZ5C$l8*E^Uth0000zE0Ay_3@1Z_7#f-XWL#E{8Al7>L$ z0Rx7lnddoqAyfT%&#`$;v0@*5YdW3w z7mLNoa=FAshK% zDiy@zakyMAxr-H?iQDZi^!t5;Eno2A=?>mMx`Vg(Z!?<53LHLvfTPa`$mjDcX*Qdv zR;ylN4OH+m)fVX&Z#yZpUae;ss@a$K&})gHovkhr@w#xyPVlfVgXti1_357y%I-UHDvRWYvPEX+#g+j4Q9ayba zh7uQN1j%HQgA=Fp9DfODAU^*3*FCs^6IpO7xg`RUXyP)(;=d!ly=#I^l3e0Cub`{H Z`5PU3+D2e&<<(?iiXTHIMmcoLoO94I8;j@ zv^2DJ5#orqydFJX|Gm$_Bi_vyew+j6{r}$Qc@D1%fQqeAhJj)1!z4pP83k2MV2~s! zSt^w(<#HLFVBg_#xz1W8ioi(WY&Hu~6zil?DI^jJgu`K35(hkP)H%@Imesbg#5!Ps_$Ni*SiR8&sKb9?M`0-mH)gtg&YgRX#*TXz@Z+| z;|2H@xzE0TfuORhuO2k6#K8#sW^J`mQ0+E@$K`QkFV+DTlI$w{GJ;zid{*v9xeIe_ z$|Bp`@iKkgoFK3{4Z)#DWKV~W4K@5WZN+Ql_7%YxNqSx7%cWud&cX>)_PvD*UzxZg a%Kia9Rjz_59@~-t0000)l$0ECbfb-0$}>7z|u>IvuoHEmW&j4lzv=KA+EpIObc7e7{sGA)QVmnM@*^ z%|h38^m;wC+ilpk%>l#V5LCqP_y2_Cayd^XlX;j*r54R*lW!zbqtSpQNyz8(JVmWm zyV4S$2{Uhyc{Cb0QQbf{ZGT{Kr zvJi{K_&f+q^Pv4MK$hhS4TgFj_FD*rLOePdE-E^T7ZzTFCRUB`*?9&h(a#C!-v8lWG#k3AOJQaUey6Oasked^kDPe=Khg@7s584 zg`XfS1)&u*_c;I76#%`kkBfiZgKKo@0)9d6vZw=ExQUtV?eW{Y1Xv}=4X(2zy85d> Y0C^(qLv?Ui{{R3007*qoM6N<$f-gW7od5s; diff --git a/images/icons/page_white_error.png b/images/icons/page_white_error.png deleted file mode 100755 index 9fc5a0a103ddaa691a8396008ecdef1cb1f1f138..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 623 zcmV-#0+9WQP)PK^TXNSN{byMk2AI5vbwp!K-%-@!-vPR3iikL1L7HA!^!~ChCFU#lnGzp88=I z67V8PHBo4(l$u?-AKmT8?#_0rKW9dUNRbpLc`}piywAM9$xZ-3fR1C75T(BjCn-l* zjUcci2oXXo-}iqun@#)+`W@kL_-U&|2>MxZy~3IdmRm&8b)9!2%ksg3R)nNnT*TJOC=6{2hG86Dz+<^p6qfG5$i^UNUh+u)CD7O2 zK>Ioazn;U|+X0x$=feveYZL1W*Fm%e5P1sajd#eW#^5(ddx76*pt$^)b}$Q4oPabL zLc^HF>Z{8za;f$LtN0P$6C?1{X*jtXkRJ8IEeyiSzencvH3Ux_y>y^}wfJrRCQN#9 z?&e+C>sSAfrE%mZD5RfZ`gSndD)=P?+nG5Oq$zmY&-v+gc7R6c0u8^Ke#|XOq?gF@othF3zFpM8Il<8BJrWqBtF>b#_ye4{0)Xbu6j&@UIhRE002ov JPDHLkV1nWI9dZBw diff --git a/images/icons/page_white_find.png b/images/icons/page_white_find.png deleted file mode 100755 index 581843637079359a6a58fcdccf0763690c67b063..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 676 zcmV;V0$crwP)_k3`4d{s8lK_6bi^@vq&To98fNoK}7)fx$e2^Y&@<^jR_Ee+8}KG;X`@ z@bCyiolqX>bb1ZIs%QGnjzFU~L8H~d?e;*XP(h(S262}XyZ3a0h07r{KV?E70l+e- zE`%3x|M5#q+;HOC(h@A^M)7Rn13dm0&>K$j%k_F4wOWlsNCIH+!c_#{eS&TL8v4yc zcpnPEY`cQzZ$ILq{U-MA6Z6Z|1p!FZjQ}tXSb25J@HphEqX-6Hqo?-_Zn@{d#>2Ml zJGhxTAd&emK$lV-QK&VM&ix0Xy{GyS3Wp(+E1^8BhD3T0a)m-Lw@Lu4zQRrP)9(3F z^>$hh@N>OAXrmPYunLi|fJ$_*5i`46;M>~*5D{bp>-OL3{+!MJa`3kv~Q#QfQ%c z)1s}QE<_XaYBG;IuRF=td#+}fi4h(6HgoUyJLi0t(*dA^B)%@8kkG&bdM5P5^Z5WF z%d%>m^SbN0XeV)wbUOXn5Ag#A$gJx+7-OCkMM1S%MWIlTkbFLmOeW(&n&wUd&;`>p zVcRy$Z{K0=?SpNnP^;BYEEXleFbq(UY&LrXX$6qkJ~)8+b{=jj3HEXds;Z(?D%}}L zX3`39&dy=Zyar!ehA}e>w)(*vrCct{PI9^2Jpj&OZS8<3-@{0(gNv%1{)zAiLY+_^ zl}e>Ofd4&#Irj#7>=o=Uhv5IJ@?sN0^J|(WL2Uun$4}si6}TG-s3T#p&6GE<<2W)O zf{^Y2HlO#*QDvTp3v&d@;8*}aUC4lisG9(w7@d5Y8y)}U#FwCkqp*Mcgme4{&gGRf zlBfd`nF9cQBKB2_L{F8G2)7pAf$i)Ds`|}-c>pc^LRW{w4SQ)3N^BbZx)6BlCZts! zKph%`(m#xg-q3I7=(us;9<)*2%iuQ1J`oV3gU6V~T}^JU5714JN33&GwEEru0d}Uo U{MPL+lmGw#07*qoM6N<$f^vibe*gdg diff --git a/images/icons/page_white_freehand.png b/images/icons/page_white_freehand.png deleted file mode 100755 index 8d719df5205f7415ce657e5c277db4533c82f346..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 639 zcmV-_0)YLAP)p{{sC7)XB-g4w*W1a1)XtvxrMYa1o?wn&v~3 zHnC|#(>B_M1d`_7gfzLiHy=0c<2kQQdXu*33(xYN_xYW39(cz9jEVT%VokB8|DoF~ z8u%Q5sdl@4VB7X#uh+v_;yOGY&pRi?378ghv)P1cngiAAb<}D#l*?rWDV0j_dc6Zk z-|P~AJZQCA=yWcQjG8fYnimzj*3KqTfN0Cy!G^$7)+bQ$+mHVd1J zvwOR^5Lm<|R+uyB1Nu4vL?d4qa3tn?9H7SZH@~u=fFHEDfSH|bHU6kh0O3%cLdyny z{`9S2Sw~WMy0MPy!64i`jdk4Z3>^+KIL_fN2V_d&ywBt`^IJpxUI$=YAph~5`;xCe Z{s%Y0vkUXDnO6V+002ovPDHLkV1loX8z=w( diff --git a/images/icons/page_white_gear.png b/images/icons/page_white_gear.png deleted file mode 100755 index 106f5aa3611a4807ec8c21701c631730275089a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 402 zcmV;D0d4+?P)<@FR}JvtGRKa0_WfK^c7uXaFH3q@Y!Hnl8VySc`OtkPN3;#l*y*l23+99h*9JzA00}rAC!#M1dZ#v9YOBH|eC*${MmzzYjBu!!-< zK8tujf&(6i)1biy*F>4{f*Kd(IU-JsG&#b_@NgTnx@40)2@2%c;*=?-2Za=}O}7&( w%_K#(S>e1j&gfY?mR})n>>0+8p`iTe2d1K2h8#$+)&Kwi07*qoM6N<$f(2cptN;K2 diff --git a/images/icons/page_white_get.png b/images/icons/page_white_get.png deleted file mode 100755 index e4a1ecba1b60e54f3777717ed105cdde745b7184..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 516 zcmV+f0{i`mP)o)wchR-92qq~y6`XqbKmElbB3z{pkZs0VPF`CFvS?7jDn^mFo>d9Y&06* z&1MsS!M-CH3ee+h_sy)Ms%B*ec3R0RpVi9?*mU84yoq(Bw8 z<4(999dJJE!V%pWT~HGRIAb;(#O%2K3?uRpz}AfgE8e9q&OSdr^e^}lC$QXZz;S2A z)w>^oHy>?v)q--`!pmuBe96PxP0u*inQvyFW(llfv9 zXV1s*Jh`y2H%B3ZTA(AzpsQ?hb6_PyZ=c1?_B4fbl>G%!@ubJln=!)x0000#DY{xaiib^#X=YT4@yE_&2#eBulEdzjE`u&@G%2(&u{J-<}d(^uY4W_kMfEX z@!X)AR9F&FL?RJyJRUzvBoeqN{5kY`z3wcM0+du73~_0|*lac! z42Dw(Eg1o{Ash}P8jXrqN+1w`*XxDD;ShmPCZC7#4;wWbHoMvBl$=zF-`?*9j*Nbjd=v@OWt_BgKxP-3wd zy37?ATx&$b+&zRM!K;BD%Okw`Sb@&Pak8$KRX19jWZmC0&n*Ggv%j8nvSPDFw zEkV65AGOoBQ8kf`R|}Px*&INNS%osq9b{Fq2I(x6@xM>tg=vRLF?I`0rWzHyRc>}g~)F_Qn`A>)C_iwK%Z zrIJ;xR)UI1Y4Ozts|-Nho;q zVk9-bX)%F~!;63iu$Fk=VJn3~fmb5S@@)ZqjBT2{f`vT`b2}zxb0$o;EF@G3&BHK^ zc)`1kUzo^Qkk$?KFKHNBD?nP-MJ3b@&4fg;g5l2wMi^g?9qj+~@b;62o_U1_S1J`g z7m^UMg25FX1MJ5AQxAJ5F5WDt=$=-@JV-!LHA2vuxl9kN>PS8x??^AINH6LjF*#nbk4}=n3gfWp$kEX5IpHS zYiQ{@d7Nl&d$#+7-TckP&Q}N91e-C#5QQ<|d}62BjvZR2H60wE-&H<>}%WqH(_V;zPbB1rgSSSC(0? zWlQ#?N3UgnJ9m2C29w!SwoOo5_2Iq!<8vCyEoDoj@#oV($oJEg6Bj@;nD|2g8 s%L|>IZ381yx9RvPhV4J)*SeoEV4lyr#k*`nfWBbxboFyt=akR{0DpOPi2wiq diff --git a/images/icons/page_white_key.png b/images/icons/page_white_key.png deleted file mode 100755 index d61648452284da1bc28b10385f95b5d2bf027901..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616 zcmV-u0+;=XP)-tZUVHjYHp;RjQ0M0pRlXN=mLv{hk9Ebp9&~+Wj-T9IkpzWPWd#fZ)d=zV^~S`;LE*!&u-?g42^wwN&Xr1~#d5ifl_2*B1OoS}CDno^8a50ArfE8;stQF>AP54J@H~%T zFz84s;dO!QJKD36(~!QOg!t_^gfFcSKDU4yK0+Ypg$NT^mIYcQ6bk*3P(lBLh7Df_ zTu=2xC#+-_%)|{Cv8zz0t|0y4D5M`xAc{gwOKc`ou<*&VjUREFHs1qd<_xSkKeTBt zgyCi=@jj;&Ns^GsWWaIUl0Y2azcDlF@u{(P*!+EH;lnU~b|Lv{4|4Hdkh!qoQHiE$ zY#y>KFA0QEw=4Z|uV{0A^`Y=D}hB$GP&<$bi8q(u;p^0(my3Rz7fP}|# zGZ&#uor4@c3q9r|f?H6-UZmfgKx(iV(MQ`MPWB>iC~SxnN5H*zb*A3#zWwgu&c|}3 zn^g87H{pdeasl%Lhmab&jC?lES}7C?4BFDNA<}20hoY@w_IU%i*T;}}wh!589}7~7 z#Ug`-R~4j&+K_y4kW@X7qLr-)S5qVKU)tO;+kXJ++{vPI@{hVK|PhMVVx_`)vx~zUs}c9O-Ok{00000NkvXXu0mjf DS5_-g diff --git a/images/icons/page_white_link.png b/images/icons/page_white_link.png deleted file mode 100755 index bf7bd1c9bfd78d689c73ba67cf914182933ee68c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 614 zcmV-s0-61ZP)OOAS;jTeL{ZSdz-%)SMH9tDF;N4B6%j=d15J&5qy`F#vB?Ar zqS1nH@%ny_XSI*Y>) z1f5QYdmzT>YciP<3WehS<{GovEaLGv27>{*-7f0&I$yJ^L%ZGPv1YT$V|u;*+ZCWz ztHI~CDVsuy($SfR6-`N~K?9GTB#l%%0h7 z-q`K-y~E)+s8lMyTrPL8^_pUo)9G|SluG5pPqw6!LJB_PzyJUM07*qoM6N<$f^=yZ AYybcN diff --git a/images/icons/page_white_magnify.png b/images/icons/page_white_magnify.png deleted file mode 100755 index f6b74cc40f82fc83e4dfa6e9647ccc1b34e6ed7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 554 zcmV+_0@eMAP)Vb2f>2}Fa82O3m(Ob=t*sniin`NpInLyMJgI`saru@YOPfh zy4g0#G*cV!#N%;Gq9_VH9?v%kjS3Rb1j8^;C={$Gp=lbj z*(?%?geA!5^Pok%UauwjA)v4g2`HedDw4_Mk4hhBQt?e7YJ5(hcj|3dNu^TOPGnjB zTTsqd3GIZ=Bb`n=7no)dflv&K(lsWw?lH6T1Yht0F9qgIuzh}ym0%n<3d3EBWB*pg z+G!I0lbAEXyd>k|QNuwr4=KX1D+tLPv)j@C1=N4sA4NF9A>HcO3G47*Y6!+SrUH-7 z1hb;^#S=r|`aMh>J#dWruAEf}gcR(DRUC`ZUev&$Sbh0SgLiTXeeHEU<$_YV;9281 zym`igIE%Sm8DpDw7@71Tv^EB5xSdUR*0$Mqp+Wq8OoaZtOg52&)zZ;;M=7#C1Yd6x svjx>8ad4e2x|*xHHwRjcjs6zA0XLDUqKT6dS^xk507*qoM6N<$f*wetruo^Ag2=LamM1T#~4RmC^m`_ zs}H7d&XJ}mg+hU?tu0noRvyjI&o2SRAeYZFesYkts79I^jJ7!A7%6nJwq8O?iT55M z1OQ` zbL{!Cp5o*IRmE9PInMCSPjTwfT~J+EYkz}tjxY=fg5Yf6EQ@DG$0kMJ9h^&$W}9BU zP1oj2;?MWVkKIEl)r=Y;L^Cx2q|>!)qJJ8zE7-V*-Cf7V8_2#1c0N975t~+&QUpQJ z5(uo(-O_`%Rj@U@t>JYAgd!>L?0Idxtd#oW2gc!jinsAEva8|kF4#Ic**mmml_{d^$s}Q5Q)KCys4sfck5bP1SyeHwh2`A<@N&t2j0^lgHC_^(pAAPCNjwl+>AN%C4Ll>_8Hjda%9 oS~i=#*e)>KsPlg0=2)Qg6BCqJ=F8HdGXMYp07*qoM6N<$f@i)wr~m)} diff --git a/images/icons/page_white_office.png b/images/icons/page_white_office.png deleted file mode 100755 index a65bcb3e1e9613cd9e4950850db43d7025a5fdf9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 779 zcmV+m1N8ifP)JNR5;6x zll@CmQ5eTZ^k*a#RQf}fVOdd`5NJh6S(>6Cf$wEW#f&JyAR#GAn9>Gml;nOf3WCDa z5({5&UB$(IF?G#$x4X@Ickg!Y-HU!Z_rzX=qAq-XI_LS^=lOCT0|0{#{kBkYDS7{3 zD`iu%E=`cDX_^#^#n$5SIQ|4Zhsk8>N|zXHXG@*41$i-7`Jr{8`3S_OEcmY|RF48wXkk?WpdVM4OePBSbfh z#4_=eXJg@3epx~gi>QbUmO}Bm(ENN3+@c?jWiKvSrm(o|W}Ud*?vy~fn1!V~Cl4kB zI-;c!8f~-v)jX82%EG($>?;KSD$64f2&4qQ#=Yyrcpy$57RAVuV#vKMP)0hT$r6m# zc^F^XaJ8R9Q|}x^NoJYIvYZkq-z}Tnj@UJK2l2H zG}p+VvtjP2Z%bsb$~7QLJ9#pC0dKi`ppOd^_V;ME6tdzC0PtV|r=@e@37O`%0k^=5^`%cf$eu00N17Ro!{^30krz>a%3j34C?*{Mt2^a4~ zK=P+Qq%|f;Tc&+9ps;@Mw`EE%rgs&#y=j6BUGg96oIqdwj9-fiy*N(|@o)eD002ov JPDHLkV1j#pUPb@_ diff --git a/images/icons/page_white_paint.png b/images/icons/page_white_paint.png deleted file mode 100755 index 23a37b891c2f5faa3b8128d45373ceab794ca609..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 688 zcmV;h0#E&kP)PK^TXt2QS_@2qt2T|9~baC-vaPn=ziepcfAwB$0!O2Q)E}1e8!q+9)KT5JVKU z7HNY}h##OS-BxWHWjD0wrPDeEfUClHs%Q6&2u@FTOJkKMQN|_Rlw6rQz$gPzqGNtj z#ruSeFeh835JJFiM6vp@6M5bXj%k7CMt%SIwfbF_fD-3*Os`9Ly_Q3WQ_SX33E{pX z9_WIeeTCGQ3wYALpBcK+P-iuw;3i&7xCua37k5# z`>c`M@sGeC7cdsdz`aE9lOz!hPholbyz%T85LYf6O*@SA+9&+^7k>+4M8$A8iNQq{ zQvn8k?-+dU`Z@gK0z$EtPV#+`^OH`R@cE-cuE&_!D)SZGxmQxeobP_Zwq zMEgi6ePN45N`|V1so0uE8^}1xw8s;VM%Ai@7} z2-&Cyvez_-O4?6uv{zTaj|YeYEk34i~K@`8YW2g{x* zc;7z3lItpVy_et{Z-ZZ)<@*%{l7Ao8mu@V7*gz<_1##mwW*%LEwCdzNsVLYx2*T-J z#HeQ*_a=R~KDdVNk$EVgAIRl$oQi_(`_IrdJciDpH|Xe{K-YsMtc!cRnFi$qzsr4z z5*$;ecov%3->1{YNy6-Gf(Ecy&_I$CjI#laeuE+S120^|Vjsf)W&i*H07*qoM6N<$ Ef)^4A_ab^avY?n0hpS-#mn_4{O$e%cm-@NH=3`90Wq+3`~HKArSdfX`&Z12 z(CY$VW-MNtXX4xy%yUeE?}*~0-|iByA@ZrwXgph4S*bhcc5{HB!DFVm_v}P*g7+Q~K}7K0lcp(^N@X>U zV`{ZpeIf${R6Hgg4FL^`X$Eu75k(PE6ycl$AW0Ic)#@rR7Z(7;V?i-dR1K935Jgcx zPfkwK>2wGokf!Nih^ARp6-6arYFG#(9Ta!x93nFEjoA==z(g?#sDg?Owk?Mg7K+>l zWYsf(<`#+$h9Sp6gFOg_dd+80SkUpk&xM7h0`Sov9W73spU;GP073|VfZ&Gd$J$*0<~TV5aPS|qWH57|VJz+d0000JNR5;6( zlS@kiVHAe7MZY2;Xi-5)WxDDgv@tCUl*&p14T@Z~3ThM5LP4tuQfLu@EnG;nXc<8S z6&3BN?fx-cv-Kp6>HRiNTHE>$X( zD&=w+?GWC>?RLAGC6Yix;an~UmSt)tSf}1VS6N1N2ONORdD? zaj}w6DAZZdOud9Ep?M?{iQWbE5^9HLLZZF|1kdy0Tu4InEuboP9@nvbZ-P0n4AZTy zyMRIxRDmUE#LdqYuD=-Qz4N^bC`_#S7vcLn1M}{J(Wl3#c4VWczu&)AjUlh(11>gp>f`wv{KnjF%!aA*Jk N002ovPDHLkV1kkt*XsZP diff --git a/images/icons/page_white_stack.png b/images/icons/page_white_stack.png deleted file mode 100755 index 44084add79b9a0fc3354d16bbd4b4b5ff8095da7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 317 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^zbpD<_bdI{u9mbgZg z1m~xflqVLYGB~E>C#5QQ<|d}62BjvZR2H60wE-$R@9E+gqH(@-qA%AW0|7U8+xDRI z0k`B18}ImRw2g{jTGP$Pmx3yI6F_2s&$|`cJ!i0UN zB3H;=r{#{FwLaNVJ&hZl9+MTHGx1T^-A=Q0?hRb#8a~x50X%;`b6ik3cw=#XdxWy= zgrpBoDjpwP&g9<9h3x!k_B!?vuTJVkmIJ-U N;OXk;vd$@?2>|rNdMN+^ diff --git a/images/icons/page_white_star.png b/images/icons/page_white_star.png deleted file mode 100755 index 3a1441c9a12062a4bb3d706000d3ca14399aebca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 565 zcmV-50?Pe~P)SCZIX8XZzY2l?gCw6LlgWJ5Avz#QX4|&mI8LN)w~J1vgL=KLAhlWz*=#m~gyvxa z&;iC6gb?aZvMdXxX`<0+D1hs_pqJ!wxqlEH;CJ)je~uL(gpi@v>!I0f_Kl=E(E+Tq z26na*9gribxx-Oft(HnstyXUUy!39&E-cI%J5Rsy;(PGZH{g{ty!HVC&yGPT3H8x# zw{^gBPW)O0FMoh{k%l<`1a|To_Wl&u&-GXm8izU|&<&utILc4wc6s@u1bmTz6x{qg zTw@7=FQRcg&r`h+gcR$*Jbv+*DPk7v)B@e0o2 z6IlBXW&8xh@9)YKiV~2>+z&XKd24JT55YWz&JtfvCg4r^~bLP79-yS@n$OW00000NkvXXu0mjf DStt2z diff --git a/images/icons/page_white_text.png b/images/icons/page_white_text.png deleted file mode 100755 index 813f712f726c935f9adf8d2f2dd0d7683791ef11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 342 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^zbpD<_bdI{u9mbgZg z1m~xflqVLYGB~E>C#5QQ<|d}62BjvZR2H60wE-%6;pyTSA|c6o&@eC9QG)Hj&ExYL zO&oVL^)+cM^qd@ApywS>pwx0H@RDN}hq;7mU-SKczYQ-hnrr=;iDAQMZQ+*g=YOM= z!QlMQEn7FbaD->uKAYgo_j9)W&$$zS*W9}m(ey0q$&7l-XEWO0Y(9M=SnhLbwy;d>@~SY$Ku*0xPvIOQeV1x7u_z-2-X>_74(yfh7C znXL|3GZ+d2`3re2hs?MKC#5QQ<|d}62BjvZR2H60wE-$R>*?YcqH(@;f-l!01CbW>s1Izr z3LkoHh<3E?TVANoG4CX|$empRCCS=R(U(hVJfm~E?IkDKRK&NP2|n`v>d(vV;W1uY zrFGVdwn;4b{qUtE`?GB`)E1ga&i2|7ncUL1b!KMq^QnT#_gn?_Z8(c`1Q~Vy3oL!N z$M8vHL&U1J3SJF!56azQU3B6>r|ZQ{U6)pC|tRy7$(5JQ<@7eB8yk=XcNf-aBIe#;8c_B$^=N z{-Iq&o3%O}V4~G($=zcP(LI|+6dq{?rby~MXwJQ*=!bOvl%?k zYY;jP^@M_k03MHL+-9?_3W5MN=moFW3xmPHU=-4Bw;62MrIhg_lwHEsv)V9U4x>+9cG2kIz8fWo`WyMMfz zdg-)p!<(hFR{VYSDJHEJn09O@#)%q0l?GUg9eS2~vKPUtd+=ak5lWLd-jI=;cjEf# zt$1;~?G!t@s+VLwL=P+Ks;E z!Jkh#NeohG;&02OFD7^EY zP!_PL2~i9VnPEW6Fz?O3dVF_U$duAL$=SU7&hNc@-drC5A4z=IgjR%B|D)?dOEaGb zuwod-$hPex$8oSoqK;@Z8u3EBfK@V2CKKqo?yA%2pjNA)(P%)HWf#)x^$?52W{|1b zPXOA$IfrSQV2q(qC_vLR)a!L9isAxjoeoJRlgE&G0Ga8krBVsGjZJJ-x6y1i(eL-q zwB%+o53no?l}ZJh#drAjlc6nhs3RTn;1IH+x;K#|X)!=#fM76)$IqT4^N}IF%aQ#o zTKS@*)|#L#jiCPi9~);c`x>TR|0{+9a?O5Exg#~V5W2C7G9nAAN(~f z2caqx&t~GhnK;qW3~&OuEke?%u(8Jxs_+ZVVz1^-uLrP95TahadGG$+(D&+%2QMF8 eFxE8s%l`oWamgLPAe&$S0000dKE@duOisOkyZ-5 zuwDqkAi_*y5o3Xrq7ieT<<3p#-R^dGySwea-CgZZZITBc?#1u+FtBuUCJUZe;~j-%Tu@ZpYB;$&ydfdZG#(j;(iB#^yRlqv#C*LO zXWXM0cpKKBlj#L6awm|;A38Zs3mg;sQZmCAZT8m@X{AlP6 zVI=SsiA16x=>2%^XV3U0y4~G+MNE!B{!#;~%L2l(14PX>EblXb{rnCSlVKe0dyf-O zuY#uOf}m&2xq80;4d3i|cuNw}U@sg3VKRU)>Os_1L3pl5mK*|?X3#a}K+EVZt&w?w zefXKP^ZqnW-3y9AhYJZ~r4m*!Z3OSz3d}2Q`nDM_f_u>L%8Cb}8`?bl)x?gwAy>zp z06y57kT6sry1g2l{|V%UW?)JwnbzUugbvpOF3=oZDo}spfs2EWKOH{_^59;ue!o^A z@e7dWS|QI`Ff-E$USJ`LqDF}zH%R}YOlMiv63A=qK^d}n!5_(fW%^k4U_D`_meIDi kNMKea>saR;>gt<+0gk_zsk5>Xc>n+a07*qoM6N<$f>Jg*?*IS* diff --git a/images/icons/page_white_width.png b/images/icons/page_white_width.png deleted file mode 100755 index 1eb880947ddf3e745c29e8d9dc90f09c7e6e323c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 309 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^zbpD<_bdI{u9mbgZg z1m~xflqVLYGB~E>C#5QQ<|d}62BjvZR2H60wE-$R?&;zfqH(@;q9b3Efq-lM(nr^( z=EYR73-9e)UYMWsXy%?aZsD68Yyv^2$~6QgEcljw%kx>O(f-gQ?@fOOx3A-0+Qw?O zRx~W)kn~Qe2d6f9nMG#g9Q04Mk==M~N!Dglvxk!fgVh#w@ZV$IY1+Xc`d{d2UcaP~ zfWp)_Ivqj}l2SPy^9ZWy6rG9Yx4v67_uA&&9|XA~5-#3)W3%em1peD8RWH^#O%XoM zxMPud%}GTj#~*+7JMxTd!`{^Q+>(D3*|@KV`*G2;{QnANOxu1$r2xIe;OXk;vd$@? F2>@zac~<}c diff --git a/images/icons/page_white_word.png b/images/icons/page_white_word.png deleted file mode 100755 index ae8ecbf47672a874c0958d0d113a56162c2bd364..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 651 zcmV;60(AX}P)hkjP zNW|QGv-YFNLN^qH@tJycPNG5ti6B7;r4mEr#lr@*T8*M85D`{ZR^BWwF23T<%MYIh zdC)S*p=|xk^!~H=+HSZ183~y8v4|mYmZxt&)5{{~>J`>E223Q5>T$=~mtA71q-jdG z+eJhOAyBW^0k9Gk1+rX8)zFx((CG^&tDY>6XaS~Fy!WJON|Gdujg5^~Vzt@o%BcYLiNiTQSD`zL^ociBz_>bDlpw3kriQ@Z`bVsGz-_6N>$&gTDiKDTKR^ z-hB*tHa^>!oD~5TK^0UK5rZ}RBm50Bv}S-yA%s=Ha5RYb{)!z2N&$&64gfhybBu8p lh~_|?8^bu;BRYt{<}Yrwd83Y=s?Goa002ovPDHLkV1l%3CP4rI diff --git a/images/icons/page_white_world.png b/images/icons/page_white_world.png deleted file mode 100755 index 6ed2490ed1432d5d667a76235360824a1088e928..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 734 zcmV<40wMj0P)JT{hN;C#tgf#9krG=I>5!<*aE1_(spcgF}<`n4i zJi-}^6UUeU4jUFwdCiVPDm%`Zx^UBa8J(mnR6wEgz^}o8;)M*Y(@l_!Kfv)}4+NuM zaPXE50z)r)9=D=SR|RIqfQ^j}Hu!fzMeQBo+@PZk1G8hOw|vBTvkx`HM)Xe9q3xao z@`p0`NO!2904FHSLA6E@Y-O6zH$DQzvq@aHsz}}<(!v(Z_+EodX%R&NZW75g+nENo zV0020rxE^;7d!067AN>6*+&YLp$9uH6F-=In`XC{Cn%+o|5)b&boEPr02w@|P*oGm QmjD0&07*qoM6N<$g78X0Q~&?~ diff --git a/images/icons/page_white_wrench.png b/images/icons/page_white_wrench.png deleted file mode 100755 index fecadd08afed92536be91ab12d8e37b6bf410d5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 613 zcmV-r0-F7aP)wK%m(L+9IV|s|#(WRl-O^4GvaQsnHq|OstfO zIJ3}3<01}YGARE4m!7=)QisvlHUo!Qymx-@-t*p_129Ko-#pVI)6#!*kLj-AGXWNR zyA_{wKii_amK7^YT-v z6#plaNm#8`-kz@OvjIt^4%IN{@J3bR zRI}ME1Mv85p|%;RK>ViR>APPLB4;;BpCtqE@P+*7!G>I4UjNx~e>r3HA^tWCQ@S)l z{BslcSwL-CxQ&_ZZSv_g0Tu{yi*X){Mt|W7)lbE`SQxFP00000NkvXXu0mjf;)M*S diff --git a/images/icons/page_white_zip.png b/images/icons/page_white_zip.png deleted file mode 100755 index fd4bbccdf1643f4ff5022fbc59b82546e259317e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 386 zcmV-|0e$|7P)_QM!1S$Bhw4w+iRuFWf;tfR6D%SMJrb+tx zC9R6{2>Ou6#juIy6u(I?|;&Owi$sRB4^20apB5xE2 z#B9XekY66S6lzfCL!eEQRgo0LokTA55@Y#%_wN!TXPw^Q4IIXsG~v#u_4t;x_HM16EQ@QRY+rut&97&UefsPmLrQ5P zBC2kcbux9L%2bJz$P$XV$*zSxb2e@6_3O#;&!FD<&hLjGn%~%en;7)djE^d6!t$lW7GyIOKlQ46hr`Z zjLNuRDP_53dNoN?wd&HMgL^m1DXFU<5dQsrceN>fSz00000)O9XRTN^$%%`*Fg>ryDtc(lF@?b>dE!20r+y z#Q*>(wbV5H`-E4Do={CJp7=ERhw15hgZi)?jRG88 zzVz(5;g?Td1izJyO33bhjg2Qc7FVY@f9!o)Gu?DII~vm-Dc?}3M!fsgjP?F(7`rgg z+xOk8XD)e?Zl=5+un`5!7kr?F=eq)K-5uqr%yU$1hLv){Vlm=)*5~`lwMciiXFu*g z)*Jkz6AF>#zb(Vx`Iv{bdGZHtlW)v(y5k^|xgSUc9%0}S20nrYrO}78ofk?bV!5)4 z=Ngz@+$9N1>>mA%IWx`Fqa240bWkiW;2TZgd8CZS0U}@mknC;!2;wi$eI@`h0y2JS`Eae0CW}q(2(%!m8 zWq$`PDU>LT1_y*bBv#P5<@q0@ttz$hIH}YMDvAigCc=y*)jY-VOpTd;A8@3t7Xh4r z0KTWOk;N2Ox4!&&^4B*no$WtTX!BXB)rg!y8dvGgKBQKLJNXRRp0}Bsjd1|LNQX~c zbC~fjrk2iL@4dYF*vt;}dFn(%h)n_-vzEIHMOKRkdF%3Lq|zBgKm_h>TEq!))nWjq zzn;B!?!(dQcHu$#=JF`cS&W~C`WHFW^B!~MI#k)>1Vk&eQy8P1O`J6V04{D@|7d6^ zyBABnh-d^H0FX&L07M||E0n_dp4v&Q%PSE9p#R#Hq)`5I_(B5CE#q dxjPz0{s-<+c#AC!i7@~G002ovPDHLkV1iPlpuqqD diff --git a/images/icons/paintbrush.png b/images/icons/paintbrush.png deleted file mode 100755 index a3ecf87784e7715238421dbbe773a54f602c7fb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 548 zcmV+<0^9wGP)_f5P$T1}wR3qlt(jG_Y0Zr52WH59esgOQSo5P}VIa-lfSOgY zCZygaE0|WSnkNR-ymix>c|SI-nf-6e(wcueyQTi$-RJ-R;B=$^K+VoLQ)2g$Ws=Pc zm#>>RZ{`29@OSkoJqNN@e;Py`Af1JrY`wEZP%6mtqXSk zPwm?BzjD%=|3xj6wl2t5m&ThH>ZdPV+c10m|F)IK{&%jw_P=uO$^X$kSO5DKE_-is$J8N5P(ZnF4bK|DPP6d6{}iR@dma4U zGwNI63={10?wsg6GrMIz9=9gZKjA|+f3>GAK+D|GJH82pDTdw`PIL|}-E9ldO1tCE zh!Y}h7`H{Mc=~qbQ(FLcAgsD6T*IKskM2jy_-qNlZnsM>1c*c;%G7om9HAYZ4@|gr ze-YdHGL{@3SlraFMS}W1yBeCDwgj)70ffV0WjdWkyAqr__<>5Lf>Nmjzuyn#`-SF| zCD@#CrZM!vJ3OHFTxO9ZIYyfsjRp#Z0 zMwk*D4u?7#jpFF&2#1GEG`Byu|C}hU^-i!wvCE+^rj9RT$?eTa}EEYkR zMK{!HwbGGEfk1HjC$2x=82slTsZ=WU`uaN4eVfe&i9|y3`F!?;Cy|z1E>{~228hLC plE>q<_Zv^tYSsXk%l)sJ)*onV;!t9*YM1~3002ovPDHLkV1n&hO1S_4 diff --git a/images/icons/palette.png b/images/icons/palette.png deleted file mode 100755 index 73c5b3f243d98d089dd9e025edc81b939c1a9320..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 856 zcmV-e1E>6nP)PbXFR5;6x zQ`<|^Q5@e>|3Fq06ckj13SKAzrBX7=2LmNa=VjAGbC_kBmo!b(h0(lh&dtlb&FNfD zmuquN(K1t)x?D|-M01+g{cLIqvEiq)K|Q2K51*IA`CQKDe7`gRw4E?o66yPi8&Nn? z6l%~H1nUQ%T@&i^1O5KKw~aW)k2+%HG368DWXx)cVb)1u?vucz;=oXT3q3jhU%Im| z1?(s=#*a)g@)(;l>H@5fX<;>n14d_9M|`nnP-6AN3z#%q4DzF(Nk5nWM_|14<{lEc zYPuy4KilYl*ag-mA8dVe2Tbuq#03kAEX>O@@Lksg>YW6tl(V+B2dCW}0wgkfx|Qv4 z-D>azy5k)pmaZ6BhrO`cMMsS?2x;x!C{kX=N`E6pB`Ii0bgLj_hNq!8%(hX_#U?!j zKiGk=Hh5$0c^KwfGl^?D=47dOtiAw2KNAm$$b9o7%%}<>OK>*QNXr%9w1k|LfQ{U2 zSbTi2+))I}Pzx-B&9LZXSZvF~o2CeGlzvc4uVc3ME*4%1(7-xD(S|uUCaD1_sK#7S ztY9n_un1WWgXlK28Rs!v7K;_~=D2b`P734*5Qt!^h`~~a5OuM~Hfisl25mar^a_}} zg_v*2Bt^;WEyLcAGWiUsw{`FkNI_Ti5|L(1@j^*TA*!PfgVy)tDpxOv#%F0dOfNa0 zdc|1jYs3&aBQ0Zq#{l)Z8sgGaTq&(WaY+Uil^l#q(oh+BaNO|=WH5X?GktSNWOaL* z*ZNp}GN_(f2a)O)VOE@kDJ~t8MZuVBOvi$ni}tLGC}Zpk**1wJva900hs{igrph=+ z+^OPVd@W&MNyEpqoQ;kge+VO-3U?f3JDTsf%0@_u%bjJIsY%3=wv>=dpyM%#>wcRc z+$m+(U9dwMf67h5I&QPOO-M5_z-8e1J$HL#g&=&d>pz$2H|k=JCX$xdMNx(>Vb1$laU+Su6m`1mYawk#zjWzL*A zot>TAw{PFJZJUFGLr6%--Me=~LqjVnDxN%fvUKTEdwcu2bLVz+bol!EIypH_o;>;K z)2GqV(N$Gdfq{W0CMN&EfPpxm_>+Z^fx(DD2c#V2CkD2;4l@fpbWSCmP!XEwc`!;~ z>69x*K4H2MAyUkHv}SuU3mzz7TzmZyvr>tM&`am!LQOG4w}W3N_4(+ruo_CUsT;6+ z@v`WNYZ%HI$mmOPc#0S>@-P}QbLla$DS9f3Gx6#(Fo+4Vc6jn-^2crzRW0|DG+_4R ulxNqP<0Wy(kcmZrQ(?20kc=Upo`LLKofxJnB{sR3AWj3pJ$F4F8LR=7xPE*9 diff --git a/images/icons/paste_plain.png b/images/icons/paste_plain.png deleted file mode 100755 index c0490eb797199675d096a70d1895b235f05f1fcb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 605 zcmV-j0;2tiP)#CVVzw7Br$VwirmQyNV@gr)$8lP5a8@sX@X>Dli-1k7mq;##Fp9!vA_9^;^gT9 zP&gbR4}cpAfn4PTZUM;;=G@;S+1?wugFJxT@euH|gQuOIga4}@AmEnvC%Ym({+M9j zVo-M%iVA!`GEJ-1T5@;H3^V)O0~j7suz;J9gdFkMB)8`tk|fFDp$n3T<2Y?Ln@fEF zAw}jWIBvqt>2x}*t*xPfNLgR6*9jr;*MT`691n(DgqZ(davP zmnO-~_^B!6Lhj^Kh<}!mM6FgE5@&Y?c=UF4wG3R!9vOLdDwio1i$qa0@&mRq1}l<=psl5*5Xz9i;M}s*NP=ugs7Q#8Z;Dyx|}!`#}xw_C3!B-yaPC&0j)XcpuX@rNfq|q}N(wJOjA& z>u+z?dfJEuLePrqzy!)73pvLjxk4d6XNZt?hm_iYES{i}J5y3l?}PPNYDBR7oPc~6 zL^d)Bi4Q2L3pnp!nFxN9c2E+=@XAl&+;2m6a~kZj1r3Mz3C=hmUG<{+vWR@t4q?fJ zhFc(ozZD#Mx`^Q~g1v=K6!QnfuqyD4>U4EjF0eamL}Jx| z%&`kR-H+3GBYr*Qx}frLU4`%n9(`uSomzw)t%%NagXkA*R5Mbv9VLDp1wMo$cOMa~ s3Wm%r7^bwK$2$}-<~D8p`#1iScU4^XCLAA~0ssI207*qoM6N<$g3sK(Qvd(} diff --git a/images/icons/phone.png b/images/icons/phone.png deleted file mode 100755 index c39f162f854a7c412fab9b6ff38fffdc61754a58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 488 zcmVP)A1 zOEJ*J2%-6P-uFsN(314vc)81apZC3Y?}U^RyNqtPD}x|FyWJM~eFHm=EXyz)4*%_2 z`9-hS>nKH+LWpCvJW_K{ee2+Qy$;K=iUCm+-8LExR4SE?bDE}l5@MQWF@R2<=i#hh zg==L9Gagssz>e{B{#CAk4$LM@iPnXHWk?Xw`LOUEW#s_FFc8NvgbK8&R^1S*OrR37 zn*ts~sNlPI6{FG%N)TkF%_zHVFy=yhaAh z=X2P$4d3_SI1Uzzg$DC~VGUH@|Ab+cK@S!@h=-yEBPe(i z!9ay7UV6}j5OUI9ni4`5Y%nw>Hf=V$o85J0L$(BM9C$nL?Y#NEnRzq9bzKaTY&Pq* zS}kNU8SyW>g#U=+I4Befo7!dmYngKC#= z-5ZhYsr7cJNXPwt4fq1HiGYhcM+6>@yO| zXD@>K)$29`oe)=`;M0Ve`z_rRHM)ytw;{NqJ92_6VOk@C*y0Ex)o5ihL^ph1#5YinO zyxORvZUfgg!GxzCWTNIM`)KJS{p1Ntor?_ABp3_=gaD2H85Y)0(rUlQOh{nzR6z<5 zEO0De$IN)yJIjF82x73(uJW{bfy*E6{#GD4S;+brQ?z@ND2z~($5eI$1QYf0H)an^QOO;qRuu9YpYp4SM;xg>M8uf2uGbh)OD` zgcc!@P()C+7(|Syv{2NWl1}%|Ip23$OfzL^1Rl7H!-a?UPH0>AuIgq>Y&*abtHh}bOQd8rj^1=cFY2s6_~{FH~Pqa?m7MUmIL zXOcRvh_#B#q^Swkk*#g!jm7WXi&VJ<8 zrFU3SGIfR^Sgcm?D>^DRQrV;2ce{u!WPvAN_Ooa<6KaGN;mE)!NfIOa2cTl3sg$9s zVVo(vQNs))-_MaGw`pzK zMsTql`^! diff --git a/images/icons/picture.png b/images/icons/picture.png deleted file mode 100755 index 4a158fef7e0da8fd19525f574f2c4966443866cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 606 zcmV-k0-^nhP)Q2rnAt>LM%-F zK|rtwgcU)}7x~z1Hrcs5bH*ZO$!>xO8K#?==bZPQ_ecnV>#P`H`QzGaRhd62G_&rC zTLU$c7_x*nFP_dW#Q+*);mMHE?j)HexK784D4x9l_tfpz2$@1y}9rkF+ zI+J5NMWeZyObc!d+rUc=>D+uOdAOg#%+Ej6h+wn5^xPmVVH*Eu446Y0A_@ zo$rlds-+sL10DbW^i!ifsTc(=K1_V3&M#zHR|lg@#Gff=58Uzib9<$t0J;KqX&BUR5k)rz$& zB8cFtCF~4|SkfeZK0aC--xN^wy;E1t?BD8nzWmkmJ4KipCa34l0-FPtBg&rV%afN2 zgWsE9wzM;K6tG3NTXA}ea>>OQv13!S3uzM9$46_o*8xQ6&4HCL+j_Bfpv&{BC`w^1 zF1}kXxg=@s7HD;HdhR^19-zvqDt;>}q`SxG>C8uWsk!U~u^=L-t>B2@I?m3_$iUdt zY>+1Lqw&$&NLPoX3PquAW?h1I?p!{72+!;L*RlW-rlx;#dhQbN8zA&r3m}CfJ#G*x zp4Z31*EX*k*Xge=5oLx?i`zNA>kdcv??%LxH4CUBC|U7?JP#?Xk^{N5`2He2rEOSJ zY`MX=R)kfHh*sAC4)&WC*-o##!|g6raU2I#Scx)PNkXBkgeIjKCA3IE1y$N>fGA2{ zOw{KO8Y@F-YA9^{3y@eEU-x1w?+8sq(AvYkfy%}^xOc5~AK>QHtKmwQ-3^sNYaxgW zh6lzt+!*2ghff42?~W2UMkn=!+`e+&#r4!m&t*Pi{kVy<{yV5rBn%1W8t zSc#vBL6V!9;o`ktd-^>D7(tpD{uAK>89pW@UKU2M&7k1<{}&?u{~w6_M>q^XHopD# zj{zRGFdFC`m|=JgcyRw`*p4$_S3h|7hvD1L|3FO;TfwpQ_dj7T-0PBk52V5r3LXh+ zs&njyMf3kZ3=9ldq8w*5KA0f){@b^|?-~BUyz(C!4g_3)48VSdx!^BW2jDjVJ@95jSE5A%ge_ins}gi!8E`O6kJ1h=>~tC15ut zhN?)5E3L|iZFJF=*g_=_^DuEHTaU-1<9YtxodHgl>v@>xAxV-FEX%^_baD=dL!A@w?eOp=8xA9r z$snChBauiTl}aHRje-D@{otVRRsdtSzw(Ddia41}D%C|%#M#-I0`hph__Dum`X_*4 z7_*xaWU-tqSCqx%U9ljCczzCMZ!dBK;IUe#x$SLaNDz<55s5?;ahR-}o}MBQ2*68l z`F>+(2iE}Msj2D2$_lc(ySSL0MT}t}2m&~cLx}9q6mWcetN>{;SX*CrT>(6Ug9d4F z5m};M%*-G$F@fJ>V-S{>KqG|D=L3xpCnS{LVPkU>?`*b81z@kLQhCS6k)_L&*^D@y zW22*p_V+{V=|O024sN$wXh+oA&=3Ry#HoX*MuT4s4fs@Dt;@Mg^Ccw@tmWk&jv5;!R-?J}*4AEruB^=3 z)as{q-o_UN1^M%Zh1xg8#irLqMY?&F>VB?m{R_n_>>p`!{|5j7002ovPDHLkV1lz) BL~;NC diff --git a/images/icons/plugin.png b/images/icons/plugin.png deleted file mode 100755 index 6187b15aec001b7080b51a5f944f07591f26cc15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 591 zcmV-V0eEcNHZMNv|IbJ-M`( zKwWL~opzjJe^WpCmV9E;(0&ut2;4va_(#>M8)>9$R5viQnf(Nkh~VM$y>J(jqb$cj z+nL1Nm|mV)Gm|9MnHf*7Ja4OEAQz__^LRKOLEwqpiGV^^A*T=#&inGm-62Xs;dnSp zKj&H9T*boh2i)W+(n27l!C)>fq|L%VB1i ziC4p;NwV_}ZjW7$LRW#(_bKF#hp=!IqNO26Z*w2+LEwx{PVnZ&Sn}T;mtzb$;qA*nT@@+ zV5uQ@iXDTPoTbV#FRr~z04|PPh`wXTNoCm9*tG&?e3+fYl>K6+&3|Cc$KOpL`ER+_ dcRl5U#9zn6ZO}GFZvTGI59|eeu&Jr3y}f;W*=R7^NF>rezxL!sGF3<4JscycvRpLSaVBJdH-{>FKGiu2vcl zB?>cBO@dG`}<86SgeKXKW(NmL=+ClVzGW(U@A`{7K)Jv}}?J~A>gH8U@h$*fjueSQ7u=_&A^e^($BMxy|L3*gU` zXHNj$Mj-Uu`RKyT?u1-THwNT}c6s?-!Z)KlJ3?bGc}Oi%ZyB#dta>fJM8z=*y!Fd_x#F}nT~)&H+0M+@o3cgwUUqiKA4acR&wp(O$<@MKm$PVSZdN30SI9z ztAhyo#XvF_o2wCZx4$5_e({f34R>S4lcY&A50jE#lRYX459E&3m*i5=#MQrD@s6vb cdtbj1feysx#1J6VEW;A+^msfbTI z9jQ^EwMRD5xNEm*sJPjH^k)@gXT@kl5ii6#6jNXX`Yb0kVgq(zut?ZfbRr+DS= z>q{33dTpWN$tl6c7nxE)4Qur1GCxuUnp5Y z5HK(>u&W4&EXz<>UtfnPivJ`O3Zb4K8yl-}7K;Uh5XR!-B2uXo6E#Dr&Ck!D<$0b5 zXEK?PNF*3;w;Rc15`MqGDN4rSaGd2kJ3GNmOiaM%^D*ppJL2&;mX?;95{t!PwOY^e z?d|R0=pOKTy$qMj1$rk8qtS@b(NQ*LUtb@(y1JlNtJzsS-`3U!Ze(Pn>hXBkfzr6} z{3Vv(2AlG1;RQN6I#_mYZVs)jt>6p>!_3go(6&ye1Mdo>SRyz&A^1T#%t=UROW6Bf zz^9CeqErU&3`3<-Da~6HQ^UW&yCT)$Cu diff --git a/images/icons/printer_error.png b/images/icons/printer_error.png deleted file mode 100755 index 279ebb0e53aa400ce0d56ef55306f5dfb96d18a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 854 zcmV-c1F8IpP)}sFDxRh;iJ`Kl6P99uC8=RvRI)}HkrHImRbEuyMi<_M7fBaobX62} zlPf9eDk#N5YwAseOmSEsTF>{Vk~BJwPOZ97&_0w~^#(52_;@cTLqJi(-d-dO zvy0z<;;>|=arHNxEKc`4{&eb zea1EMtc>>BMVM;ZG48&F`h*Eq>ovGsE(8LBhpK?hZntZPolYlgHd}_kX5cNYLp5^E zb*L&CL8-M3MMXs#hKGkMI7yNO3hl7p@7Fd$q0m-=#1ITC?@)2H6H??2O!iKMCSF5K zp9Di#tgo*#L=;6VEG%eHiL^k7MxzuPw1YmPxausBn8w$q&yk%MM^@5@dC$l$hfAl^ zSX^AxJjP-%sDi0f3c9o(1x6k@`7!F<2eqP7^c%`s`Y`+95u%n{1cSjX0hOQ*y{O+Zbdy2gRyjvQ3h zv>+=d1Vs$f{$w%r%1ckkkP}{*4p=~bjiEG00qbx$%4TP0g_)U|lFjNa+_=z$wTS^( zny!P;mSp(-Ao?nl)g99;BUFMjTA|CfAU{0%J>xZA8Jd(h+FBPk`oK!`CCkb-<{9 diff --git a/images/icons/question.png b/images/icons/question.png deleted file mode 100644 index 8ce3f0bcb1c47bbf8d956b370f425aeccd0a356e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 360 zcmV-u0hj)XP)V3?N;$YV`Ug03A_qxMa&dMbDHKZ7`bMk1rg_`u z)vuX$zVGe4H#5rjeTPFSmjoXMr3$_ z9k>~ZDpGl9q3B(Nq3>%oG0Q2VC`ks_>wS@4wgPmYr4BftRH9XbZ}?e*vY0000u8hXXmW8$M^Z}tgueu#dCAu^FHtQeV(HM&<>-oby}}zNt6*; zqOz!R7;sXQCXnvAh%NsOY!BYTPS6Ya_FvE=N~N0XvE{pt>_abd<38j9C$Sf5#*g^{ z6#d#i;i$++U%QNK=q`5eyJ3V~u*Q$0G+EWp#2~B(nj<_bDs2zkL~hK7Lhu+$HfYV9 zg88}w#kZGWr6!PHZ*X)j?F`*Ue##H?v8xKkTTpy+9>!)Dj4xM}tnU%z-?{#Jvq5LV z)@YN0%~$O(K6n)LZPSD2E1d`=S}^f`2uGvZfdMJLnQPaaO}!IFvKxB>&n|bMcm4$0 zUpC_Oiw1-@0yr|I9f+!ueRKzf;l|(20%tyTVPvrtXKnCG%!j^695MYP&h*dy8jxmG zh3GwXFus{<)0uFafajiFK;M%%ru8Id^v`&@kgN`{8&+n{jEe5+VD{Q{CLD|<6d0af zLr+L2Y>HMnV2KT5NtiRE;&b?xw@c1+=e2n-zL{&& zned;z;Q))>W;sY6uKp4No)iE8002ovPDHLkV1im2E0q8M diff --git a/images/icons/report.png b/images/icons/report.png deleted file mode 100755 index 779ad58efc5776825ef81064a042eceba274a928..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 649 zcmV;40(Sk0P)sm$HQ(N)Ek< zrc#vXMLdW}TWpphCZsGREkUZr{Mg;M&b;luZ0IGA9rnH1`DVU1->eh_0hG(-dw<@) z-1S-xc+D!@wd^?Z=a`M%%phe@J_EnT0QpH7V3 jcG~XA#&PRl)Zh6(yXt(^KFGF}00000NkvXXu0mjfDwr>g diff --git a/images/icons/resultset_first.gif b/images/icons/resultset_first.gif deleted file mode 100644 index e8c1a86ff042c1637664d2c949bfaac544e89e87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 553 zcmZ?wbhEHb6krfwcoxl&JpGnV$@v+(UpB0M<=S$?viefr=4Vn#C*-ovCQZMcHtT-+ ztUD97JkOhdw_){*x|NTrmOsdydoOq1y;-|o)U9|pbI+RzTc5SAeO|EOkxS#{%(?dq z=HC->+$|A#EN0UEl<9Y;?R-_f`6d+(-ak}=0pXFsf5{!q+o@01-c%a=V%n0C8x;r-%8 z5A&NZhzA|maQef2M{oN}yo#pBks zPs$eGZ(H|7BJ{}W6YuL*zL>l3O-|cI@6MY&TV6J=dA#KCYmfHp^A5bOUhyz}(vAQB z|1;1LDE?$&WMGJ9&;i*AiW3I*wub1Y=9bpB_I76G0MV8(%{D$q4fAHFV3sxuyTFhp zVJRNgHVJigP)ufs8f5Kzx*fI63}@)AAFXgQp7K#X5)&2^7g z_9O9^7^ARqyc%qAP{1M7?|}io8xW>dotf=a%%ZSXBBI&Rf<-t`#(~H!2g~*8&15{# zVXjXMwHZYVJ6lk!gb6?r$g;SuO>QI;yz)L+UJ35JHfj5dm`V4G7d^U^-zuJQvw6+qtl4+srremZ`=x*3nTgw;moIx(viSb$6YpEs zzw~au*0Abf-rW1C({8ymUY@n*RocwE>CP<~F>X1iPK zwJqm9)USN}|Nnmm+5^R(EQ|~caSS>jt3YwWz~0sn*VNq7+ScCgE!ZNa7Q)=7CmGW$ zEgHz!<`EiZ-y|g=#M&m{#i8LIXQLj$)W*pxr^D~dZ6eFkW^AddY~-hDCeF~t?5ZeY z7o_5;CEUhn9;@x+Z)l-p-Nve*9~~TL%i|p0#^e;h)ue0SVAaMVW7-@k?-JF<;Mn5E P$IjNl#N{Hw!C(ylll$23 diff --git a/images/icons/resultset_last.png b/images/icons/resultset_last.png deleted file mode 100755 index 8ec89478477aada6c95cac22920094dd12f399a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcmV+n0`vWeP)eQ51#0H@Z6sk_ajqECPZEqLq!PMf5MQ5gS1i(Owi(ut_CY*w|Psf-Iy6=08Y` zHnsuDs6h)+OwcBqopImX_v1c`5LkrSCWWWFUvW71z%eN$cB714YVYtd`}$X<%JbQ) zM;;CHJDu;#-swg0iul07{S&4s!M>4O+`c|6_tW_i^y+I%|aPsIlEx5K=^ki~8LwqDy-)t}thx1D9 zB6|#ECQ%2a60OQQ<{6-)5|okv)6E>1Xpv+@iIv@MJ8v15 zR{N~1_2z$e&R$WgNhIQelIl1rK}5XruIN#GDZA_4bJqcqID*^mXXFcgt1K5iK7HPL zwLW*@#tu()#Cyd@CHc^75Ul6pYT4PCpSeBE)hh4bY>UIluejXQ`x+OXiPP^ow_ICz z@Xds+&zaX?!G#6_sf#S4}$w{Cry7S=69fc$^B(V-n6cNX+|z+ldx z1Cj^%iGj`M!0ZAK9jX2k!c3W4b|&~da&|CwZQVF?jq1)mGp&GSBBG2uEJs@oT`6$l p4tsuR%NnibE9!@iut;ghg>wq9n}(a~^RRZ9tMK(soaD%04FFw+j+X!c diff --git a/images/icons/resultset_next.png b/images/icons/resultset_next.png deleted file mode 100755 index e252606d3e68c6da135a9b165996d9da968ef7fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 395 zcmV;60d)R}P)IO8de(|Ml<%@O-40!dwX61{2C5s-llVw2V@@N0oo_PPieZ!0Y2~+R( zk!(QTf=B;X9DnzJ@u9c>OP4(U@7{849!UlyO@H`*;lVfmCvAW6f9CF&{}ZR*{jXDW zb_vl21ozzrYJBy-Vb$aRjjJF3@7nm}zjw#A|58cE9uZ}LbIY~=6ShA8U$XeY|MDdd zfQCH!?_7WRzhvaG%|sbsT7Kz&`}!yUix%Do#>T_{_Ei`DO9UTSBkH=Hg(w4*^UnUS zTk-IJ<+2C=ZObqG7Z2FGlB7VCN;>(!bn*TFHYMl(i+Sx`L~=ArL>~EXU3lidsO!!J pWF;gqzXSh89JkLNxXeT<1_12n>%V}Y6R`jQ002ovPDHLkV1iLCz99er diff --git a/images/icons/resultset_previous.gif b/images/icons/resultset_previous.gif deleted file mode 100644 index 7e0812a8013940c204e92f9b1118cc09ee94291d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 304 zcmZ?wbhEHb6krfwxN62QbN9=Qr`}gBdsMja-ppMuv*$jjTK2GL;eBDt?RkyowTjNC z&A6RD>rVIPr=?3CS1o%wVcT=*)RU1D?urK;NSSuGZT-{q$v6J|{a3T{Vc~)Y@l)?C zJMt#G`9kj8yXM&^^XA|6YQHIDyrp^VW2>4gqV9WV?S0j|=~>d$TRC$dB~O1ib;paT zJ73tAUl4KFS-#{!cF)zdC*MiN9BW+t*f9P`=IlEjt=Inl|IdIMDE?$&WMD93&;cm{ z`H6we*I{;nhmKVLi6n-pDu;q5Ei3q}(YS<#J;5}~$*7^rbK(+_kWI}RlSDG4^x71s m?J3EcaWp|`>jpa$l^`>HId$D;GZ|x!PBTu$zDXXA4Aua%Du-?W diff --git a/images/icons/resultset_previous.png b/images/icons/resultset_previous.png deleted file mode 100755 index 18f9cc10948f025fde708328fa704b520161e5f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 389 zcmV;00eb$4P)K{b{Xc8(tN&i@ zH%T)fYQpV#rAr?FpSkE_eXe+_wJd|K3f{{%aMTC(eL? z&YO?2=RWv9b;pbUjjJF3FIss2fAiYM|D{t;5@!?n%vQ}6um-u(1``H~0!(`ViJ zU$yMvf616*#2KJfaGFIu@9Y|n)@%Q3RzCcnHskjH!iD$#iw7MbEf6JRj;ypTzwkeA z{@wqXv+w*Db>B;RG>UocU1Xkp@_*9QTmMBIcK#N@1p=a9KakdI4{r9Fsj0rE)+ zb~J|8lW*Tz02$`Zaxk^6sfOa5!ghcM1=puT<{WmU!JK!6{4kb3fZrJ*ROjE>@quHyr}*Cr;=Aa64! zj|O-=Sx^U(hAq-h=kq`Q2V>dc0LCnFFu6l&F;*d8IpiIHH4yNNu{%yB`v73}L;K|S z5BXjfZJO%>P`FNNQN^m$1zjx5c5Y{17VpEWq!t0|e{#P8+?shbj%;~D00000NkvXX Hu0mjf+-WMY diff --git a/images/icons/rss.png b/images/icons/rss.png deleted file mode 100755 index 1dc6ff30ba5020600aa4ba2646beb9eb25dc978f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 530 zcmV+t0`2{YP)8MDR)G%QU0LxY1jsDL`i z5Y)<<0mFa+Gyv?I-SF1`9OhtF)?#(7@ZwPg0IYohcf#rgRl*cR36-)JAyh$ycISTR z#|RJ*0Y`3-+O5RfdxRPJ@Fmbb_UtP8y?FXu?dZjo$& zzrG9Rp9<^S_%m{rBJa8vxT8 UVM82oKL7v#07*qoM6N<$f={^a^#A|> diff --git a/images/icons/script.png b/images/icons/script.png deleted file mode 100755 index 0f9ed4d48301ffdce04cdb17dbf8acbad8372d11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 748 zcmVrG{ z$cl-P=->hx6#}NAmbP5myY~I>{qOhtLMa7Y{qE64eE#g}(xpY)TeQ8l?;Upi4EuP3 zj9qNwYy4OP^j-JLi)W5q`snr30AQZ_=_2*h-J^Uqwd^<9gC_@m_YruehOwSPa9@O%#PST ztn>RnbQXoQ3&2p_*N2(YI zkrMO}==(rnxsJAW59QQs0L07JZk*~;x_q%%{cN7dr3j%I4jC^oS!R20 zp-X8Kpw211iFbazd*AM1?Vu^zTr_Qvx?Y!ieJR$aQy;v2#^ddUoYEFRo!j>1ci(tn z{K@;T0)Sj-bCEg}zP!0%dBFa`LT=k_fI7GB{l`yczPWYR>anra$&%HTk?G3F@#Ue> zFdEg-dzaUZYPNRv<+lA7pzgcw+uL{UoxOeM-g%tFNu0n5OqYg(!P3&eWMyo1vh4Ri e9{q`*0R9JiiaRV3rbYDt00008!PM!jse+otDvXRhleu>w{(hr=P& zTV2;rBMofZo=3rrs;YWAJqHeofOC+HNSe*6&}=qN@aeaKWm$(L&gF8enM?+{FRwu9 zoD1NBqmclHW{%@Tw}6Wqg+f989t^&~Me(EkfChX#56VZfjYtFPF_lU|uh;XF8H4TO zj!YM$blUKV1mw(6M2qNP2;H{su`-!X|7n%u=>+~>3AvaIiltqd9#DvgJ&1=10t0D6 z$;|KlP3c1Y-2fh17umvCJQ4=!_2+B&{P5)SL<2$#ZY7EM2$|!%^Ti9`3q;4qtws{i zDI^jJKbdhUAOoMo-`t-B@esjXtJQ*jzYmI{z|3qKZ(vLsG2zn?;Y5OJwYqN@My1o~ zTxy!Ox4y9nOZhb^2wGcN&dWOz9DLhi_oR#=SOyS-!hh=FNvz5*&gc}4bkUS$- zpueTJs?jS>W4VH5cvDBnk}bYn&!Q$gHPEkM{Aeg6CFgw8)S-s+lpfn7J^^Wlx#}xw U_BgG30kodM)78&qol`;+07=(QkN^Mx diff --git a/images/icons/shield.png b/images/icons/shield.png deleted file mode 100755 index 3cb4e257893adf230db7220c06fb9371360312e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 702 zcmV;v0zv(WP)CSS=grr57X34Zl(zd#$wMb&<%>`t-B(tkBb(psfna0f6_}Do~^xke$ZPQvRr946H zWWosxshhe2GGhTlX^H4l2T{)>lHM28PjBPv)052H^wfm_GUcM~_VUEV$3cdCKWX1R z!rT&^3rTv;k{#1R&D<>@Px1a?%-hNzH)w3T)o)siWm4p$YE@#8C&=cg43(z=rJn}gKmtpUPjP_< zhQXyc#h?f*t`d2Vd9yzWR3(s7PzH#A7!f0%A|E3em_y#OBXS^bn8gJ3v%wOOhaiEV zN+Bg6K!%U|v5J*O8kij|KR-n{eladP2^TtCnBu~OphnPUSs(4yA3V7-gl0O@~?V*x@CTl&E<2=tI5q@L#DQla@S41 zJh{xk+x)uL-5)Og@e9A})romiTU+;hxI5}I{Y{<6W=--* k<)9^%y{&t@hewC#5QQ<|d}62BjvZR2H60wE-$x;pyTSqH#X?$9aZk9xk4=gcS_} z%w2~hdwA07|NZ~@|FQilArsd8f6XF{Qw<&ke0ci5`VUv#|NpJ=2j%aCIn+%2WcF59 z%>CW#*}oUPcm3UcP5krW-G`*(r!XhJ>z-n_f{E?eO??G7rnQMK8>51>n=~5O_yZ)GQ;#)>*f=EeOp`n$p2lMq5y8c< Y)sUsE^zP|RKsPgZy85}Sb4q9e02 zk}*reKp2Lbf0AEO7ypA}amXNqYyp>Y;Fci-g4`}4WOLWH+9@cGQs}0F*iEjOG*W}4 zm%wK(ZQw2m_=MnyjyI)bdn5JojW9_ApWwoHWG)HAlBv>up3c{Bd7V)Nj z@iR8U_45rBpRWSDU5?-*Tkw3&gP5hEC2ui07*qoM6N<$f(bUU AHUIzs diff --git a/images/icons/sort_asc.gif b/images/icons/sort_asc.gif deleted file mode 100644 index f9ddf4e7e18669324ecaca90115807646d512cc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 335 zcmZ?wbhEHb6krfwxT?(X?Af!24TM>zj*`X{Q3Lm+O=!X zo;`o~@X?*ycmDhZfr}R|{{8#s_U${bfvR4={`u?Y#S0fce)#YQsQS;JXV0JCzJ2@o z^JgDEeE9nH>(8G*ckI}4=gyt~V8B2Fp!k!8k%2*(K?h_u$WIJxIR_>dSa7v=cqDPK zSgB1_;9l}mMo*M0t5lOSSL)W2NrD>f3mJG57$3}O_3nCDVBmA_^f`t`1s)FZbZ@y9 zR=GC0L~r??-d@otZ+=cbP9`P^K_9MQ7S8vbw`kd1pOvdt`nkHT-{9ut$Y2cs D=5meh diff --git a/images/icons/sort_desc.gif b/images/icons/sort_desc.gif deleted file mode 100644 index b16b69b6b9514471da98dd9c6b0e529beb8395d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmZ?wbhEHb6krfwxT?(X?Af!24TM>zj*`X{Q3Lm+O=!X zo;`o~@X?*ycmDhZfr}R|{{8#s_U${bfvR4={`u?Y#S0fce)#YQsQS;JXV0JCzJ2@o z^JgDEeE9nH>(8G*ckI}4=gyt~V8B2Fp!k!8k%2*(K?h_u$WIJxDF-fUxadfA9#YIW znWN|IHL=8NYE#F8RbeHeX)J<04igGgt@J#aJl~xp*?#0D5*GoWbq1RF;4^K}=25SI0@`=^} diff --git a/images/icons/sound.png b/images/icons/sound.png deleted file mode 100755 index 6056d234a9818d248987389d4a621e5c83ce0851..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 610 zcmV-o0-gPdP)FDRfPcVFW5d%9V=z{?A#;oriL5xO+n6O2X~nf!lQuE^VWXpgu83qI(qCF{ zS}dqc=wWy-JjhR6YYDxINHb)T^nMSh)vA20R`F7)lzCSCZF94My}d73T>N+m zpyXWPL`#FF;s+j3t(LL2R!6+EP98p9G9EaJe<5S)o@#CPu0JyV*YBbiNC<>y{C`3_2 zFc^fUC0P=`0GC2D0rmxry!i<{eh#|t2UjSV*w|QyY37m5W)KQZKoA6m%^;bK|K7sb zq~^Y!1U(%y>Cs5W^^bz?JUQeR7IK)M&$43OYdMwDJVcVBtSjl_Ar8Hmr2)a$eK-tv zNC4d)(7D`Piq~gVUR7m2k$BH5O6=$i%I6Kpa_sVNy!&j)9UKPT@*VWNNNm+UIUciF wPJ00!a`S;oH}3WS@hUTDnx*^y9@F3E2OYGed{u8eJ^%m!07*qoM6N<$f+a~A3jhEB diff --git a/images/icons/sound_add.png b/images/icons/sound_add.png deleted file mode 100755 index 965c503c6088f5ca20ae624ae9f9bb8f05490640..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 684 zcmV;d0#p5oP){@e)R=6tn`E0`O&UochFZ7FhGdgX0zI@b zfwou(BBezH*PQIpi)fL8z0AQtp}BZyynUTrZBg2SA`X0cGmm+n_nl#e0l@r=nEwVS z77H#}mcINopj0Xj&|*nZiK$9T94|fX&Uf=yW>Jbseo%3z8&JU=68c{18C+IKL-EK<@goWW*KkIou$FceWXN zR;;c*gQ6&qWf}Q=9;sA{&gT$|i6&ro%)LY0f_2wLyAC_e9ASq+u3Etu7u9GiKoA6Y zyE;cmU`TyT?i+$k6Byz~!4D7Y4!Pa#<`cE+CuDAd!f}ZXbiiVxce( zLZQIn5o-DIjdXP!!OAG^KN}ku5B~vbQ06k30fR6Ek~oG3E?;|b;X&0ux5We z`<%net$Dof>d@Xy!l_+?|K8aSlbnjOk;yO{4)bg<=w}7Nw_|`ZnG|^5X97IRt^WGQ zD%L;MjWyJc0Id_k^~kCIkw-$i4)6h=OtpUi7|C71tF5Q_b!>c?HvlI;Q3{%%>KgMK z(KG#$?uVkAKq#+$Cp$P!bmN>uJ&&@^o1KkltZ82T<6lQN7pT4(wtvQgk^c_UnVcJ% Sc~{E-0000 zv4KjGLD@@SwqBY+AwKj_2x)Ps2A1Yat)lSTxi^%;0wX%`a$6Fye?p-;}9Oz@3_H4Is>e~!^?WT9P4(UVR_y$uYg2R z0LM90z};reLY114GXmmv;A$P-B^yEOFE%_9+Ev5395PjP4WPtcoxO#h*GhbsI?f-T zC;7Pu|AZ>;$? tsn=ZC^sk$??2gfnFO}FzBE_uKzXNI$nkY}mb87$q002ovPDHLkV1k=gKso>b diff --git a/images/icons/sound_low.png b/images/icons/sound_low.png deleted file mode 100755 index 4d918633fb7c50bb382f91385540919583695bff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcmV+n0`vWeP)}W-Vhw;NT#RL?T9uLxYyXVPSxHJZ{>R$9RZyOF=SYo-}k2-w!jPV1Nk(IL7DO zV|bqJ_Mv1_1jn)OuW@=|^wWn#R~_NJtU~kr5%BG&OrdR>hyVLb-^~lVI0N<*QWk}{)T2Jp~1;rnJ&N2haulNhlC*Od9Gf>KFEtyV>~T1KT( zMys`lcDs%9Y!**GpCvG7uAr)U^!sP%^?K-byD$s`r=o}<$KlrRw*+%D1$0-K<~|ff zfh@~77KHKSyI>I8i8yRaw2IR8ItU>!0|7iT3@*K1Y{mtMqF^t`<+5lr>Nw*0@#HI( zfyeDeD71=LjJFr0(_1)Hq)$07*qoM6N<$f*zgBZU6uP diff --git a/images/icons/sound_none.png b/images/icons/sound_none.png deleted file mode 100755 index b497ebd54abd420d6ad527e45cf61be55170e944..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 417 zcmV;S0bc%zP)=wlnx)<^8N0A$6XFU?l;N(8Q}Zq)nMgnHnL@z8KSBRn@Z&a%{xn|-d2Q4 zMH9;98$s8LZzsrcY-m~$XFnviYhEiADa-Lkz!&I><>UW8(|7X;y57kb#}^N300000 LNkvXXu0mjfTqdux diff --git a/images/icons/spellcheck.png b/images/icons/spellcheck.png deleted file mode 100755 index ebc632d9bc411a06cc269dcdd21b87574cd71693..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 603 zcmV-h0;K(kP)G^19JQHhNlNj`@k%q%HHzg==U|9D%gW$B$$pnzkJW0RZ8O~_ z**^l>7H?3b1=gURtg>1uTESC4M-RmX46)~p85(ciV2C_Fjlp$--AR~)afRMYkbh08 z4X%OwtCOX5QXyPUQYlKIT_aI_mrA_ym5}Ph590lI|1dY-e8b>)T!Q$}jyx;DP=E8f z`?4qhxtni(VX!@_j1r9uwKo$O%5S=2)f{@(N4)p$pTHGQ{xjEJf5%{XSQ;Z8FqGcZ zl3e`w2SfGs#SE#JIl*G#XPFqH&rY_S_vnAX(kK5JO0Pd>Fg+-NGa&&rR{O4h{-3$~ z_A`dyvpx*PS5LYx0%~3Y)SQ3$5raOeW=sQO&$9r%az1SBi~p8$9{kVP_~L)S!pHv^ zGB4j_(A+OUR8nT}JgFeudizi1j#vNv=0E(;kb3?$gX&%hlJWx3pG8j7?*C^R2Ufr z!A*#a0RRTzHbHkRR_DJLALEjfHcAx^ZJQaCv5 zRc_myg{0)59F#Je9Q@Sdc_JdxD$jSCy;J>({^8#4&gN1?BqC>vi&blI&zxtTs9dsc zu%=p8h(t~oGu`{%_~x_M=G}7FO*KQ^6cU-L?s)5;FWRnnq^sq!Yj#K_sg>h{m%dss ztL?jU7BrnUqbY-wDLXg3@JHK6bJ}M8FzuvqO>3o-(cT^ReKO~PIrDg@q3)QP5$R=p z|DjpW{q)MbU;cV*%A}e-wn;xl|F)~zp8DXo_a1Ag8+Xu78>FA5y-TiWxuE5oriK$H z)a)~Awe+&6v)^?M)21~{she=rnC(UkOD8Eam~qB&b#;@*)r{F`la(?^8A-Lyq+<>_ z;)nzG+G?X!hNO~6igec)RoZ2%EjC$eu_5WEkcgy6mBA7#thU^+AsM7fArcXhlB;K`2YX_07*qoM6N<$f^}HuKL7v# diff --git a/images/icons/sport_basketball.png b/images/icons/sport_basketball.png deleted file mode 100755 index f7a000b9ae4beb7e2f7a532418518dffb32dad73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 977 zcmV;?11|iDP)hK4BUhe$KN9UVKPOxMNOv5-kgi^#pr|CgFd+|MrUGt z(8O1>C5urLHi^@yWCP5`g3ciz`jb5EQ)*Y6Fs<>YtYdi|Z$7iUj3J%5by<|2kMLF%Vl==ZZUK6wy_(+9Q< z#T14bqdL@$b8EdeIz8+6c$_2ho3Dm{@b&e$Ge3_}-Rz{0jFFqou>0@<9I}9N8OgM; z%o28~L@}#V+0e<-wM$(X#VN%q&IP>T<7}wsNzJa1pI2!+-p&1+vlMe>gj2y4bfY+( zc-#sVjvVFcW|Uxuba`lGP)X0m2=Cn{{K7LVUKplqfx{If^3>yCmJl{*$t0Fxl1*xC z=Sn!%C#m&RqbFAnDEjy$`qOa~+rr^@5@-!_>+4_XIyQiez!oyT+Ino$!0U4%Oaoj2 zvRUYlROO}6D+6fD8Rjovg{n%zE$uY*>|x^j3Di^`A=%gnY$1URSSFII2BVN6k+s$o z)0Fgz)&_S~x*a{WL?M%+F5H027hw9gd4!PJ-xtAO1(IbVTpontVdLH^g(BC)U*CN4 zQD$@H{ZL>xmBuug^(1YNgg^)^MIomax%2xPm=+aoiH7dO%#4il-IdWx(V}!xr0!g= zx-sxz|Gg35!xKFNeoH;% zRI>;DPCQAsGd&r#7FHA4(HHytKb{^=?hyV3XQ-8jhtkdh00000NkvXXu0mjfe#+H3 diff --git a/images/icons/sport_football.png b/images/icons/sport_football.png deleted file mode 100755 index 199f0f7f1c105db4d1da7923635ca4d1665b0618..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 875 zcmV-x1C;!UP)@uM zZrZKLQ08ITY#wSOr^)1q^3X-^zFU_|=8x~6ukZWw`Fy`03IMg#Q84MtI+(OwT`YR^ zV3Vj?^HwNTaMD`&0lplTt79Z>+eQn6urr&!LYc$xS7tL>WK7y@7dr>N0yf5al^FXV zLsw}Y7`B^#-7zO#%jvgKj-OtjYmA}ET{4Eq58sgU) ze_Mc+%rp;W7QIu=E5MLM0By4nQ^TL2uFOYUdL$YX0#O%x3Vk)D&@_v{KW#TNk2~o1 zJUcQ{Rek(IO!O`w32A=(Pd%2UB(9XD zCY7s8^6xpB2zkG~K0LdDM|18c{->}XW@ZJ)H4y#zi6N+Ou(xMXVl;FhpMV*0e*bg5@jLI;QHC){F;>`R6}I=gLXzN-t$s1{H|6% zFkP}V>jwBIwl2afcT19fK!@kT))+NX;>*FcvdkFBbFQH!B@C~lJjt{J3?{SOHlifR z2~YeTK=5R!nb8GGC14LJ9^Hl{IRxUHMzJvYpRtQ{X-ldG#PEas+&AjIl(d#PxV(4ao^#JV?>+&chcHA(W9zrcuzIeZN_*SKBfUBi{Yn_Ku88)CIy(5o z14=m5T;5${pO7EA36uz_sNoww%td4ohv#73M1nBfuf4Ii#Zb`Xkx?c^#Wj|EB;1+9 zTAO`3)Mn^#lUbsMOIsNead(bTs~hdEii`#-c%_#Z93Byp8u;Rfb|2RBC;KZL62xLk z1l1Nr<$n(?o+_Scw@RxHl?15^Rr)FwKC;G~!x?W|M;u9M&TQbFkgoE9M-rMS(BuHC5Cr@S`IdWv({{8!lckbMoyLt2GqP1(+3W4PDYCe1Rtni5wCoUg8 zd^mp3o;@i$cI*h>v}sfPnl)<{EnT|w&iwiF)o^M)bLI@s@#Du|A3Ju;1!zdulP6Dl zA3b`s_36{6u^TpQ2%I~2?u_Zvrx#$=eERfhCZNWNhYlU813JGKsA<;Y$B#EXfBw7@ zXvl6LI}2#LSAT#1CaeY=J$h6QsQJLUb?Yi`-MUo-)UX?9NE^rnK$rA9eE4u1&|41e z?d>P98n9;Tey{XN2VSpQwJPYrg9mF~zI>SrvKfe{1NobPhSUNBx4faDVFy+N7O&eG z?9;UO$FgP1N`Z=DHn#&cgPh-S_wLT8m6ersSPhu8Xp6aX)sCNw7caKiyLT@r z@TT9te}D6{XU__OnzwJ;woSXDqT*IjQIQl@1EN|sE8CT9`8{XOob$ktc3-`Eb3|G@tVF^4Eohg|=AJL2lbZDeI!mXYyuU{BM`P`n65=@@E$5OP&}eExPHN zKIK+vY3a;@f&veidKArFy%Sm*+j@RD6s~$7-+SV}bKc^tr1HtNDW%s+?`qkyWy}Bf z@8AF5xN+nEth|yFnVFfKgz^d4fY#Pl$?op%{~tbl_zz5?|I@PzPo$-#5v3XKf}G;o z6~NH`pOTSxA|)k-Xw4{Lkert3o0yo$PKss_1^|BXzSrUmnOy(?002ovPDHLkV1jkM BXjuRN diff --git a/images/icons/sport_shuttlecock.png b/images/icons/sport_shuttlecock.png deleted file mode 100755 index 917287fa0ba063e436798e7e1015745ca53bd612..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 683 zcmV;c0#yBpP)`0Ff_) z6e&KX(`h$k5oZ~J5u9y)zyE$Bk+^QPTGuQV%Y(lJAkE{v8jHo$!C9#h+Aw-No*ght z^l`{um25Vfi-I5ww8;=op`M_|ag-U@4_cbSRV2wryWPHJv)M$}FCj1rIcqYRM%n`O z`Wh7 zK2s_adXd;QTrA;c|W~1W4#eyUX=D7{S)QhURZu{wV*E*$t7xfmZ+P$ zmmY}TY|LJ*Do=`RwN9cf(bdybHtXB|IE<|AeS z=Ja%Q-prWI^L^G71JLJ zE8`y7X+TRKbJ}7QEf&P-lZHVDtk4w%9mAH2<2r{UzpN1_~X;&AtPx+O1GL)H&d;Z}BMq6_~4ugAk%x{bD~00000NkvXX Hu0mjfw(0T$ diff --git a/images/icons/sport_tennis.png b/images/icons/sport_tennis.png deleted file mode 100755 index e88a6efa1d04cdeb47a10bdfad46da5562c2653d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 884 zcmV-)1B?8LP)HdtBYdE!qbq|qw^eo+5Go%YI zri}HfQL{4YHLp zUYR_SM+pD;A5hEG#uyVikJyhc>OuUH*p2Haf+~YXw0D(yP z#Q*(9(Elu|vyH(=ODdkx5mLt9X6SV0s#(EJlNopd*b6`zY)?PWbNk=W%i`{rgTK z{0us}i=QdsNYlJNPjhXKpx95be1d}7@A^tuKZDZ-mxQS1ZLZ8z!(N+N zm!bN`MYp~Sa9^t*iP5CRm{p9Zgh~=Y60sr^mW*cp^&j2BPXGUM-@5B#(`4ZQ0000< KMNUMnLSTXp`kIXZ diff --git a/images/icons/star.gif b/images/icons/star.gif deleted file mode 100644 index d8a6b4e452da676f640bde80336af6c53297bb05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 994 zcmZ?wbhEHb6krfw_};1)e@yGs1-EyXd_G-ve{(V7 z?ZwJ}|9-ta=kfN4>7VbfKb+RPyX^&@4MxAe-gv&<_SH6>x0hCbzT$Chmd=}f?w2Phz1VE`WRv;(le)jZJbSUr z;q^Y(&yVK3xlr|di_Oaud3RT8z1pF0cd^#%bM1eAynlZ>;O!yxSEriZp7VNp*5k!S zwRcCHUY_uMvsd}cHOKF7_WXEv@XbDzoAcB@KbZaDwAGnL-d8)#UT#r%xkd5GCbM^! zP2!ZB8^X6n8)HYf#U;%$N5R}6~7d$8XvZab1CRd zI3W0dXQGMr3WY}pSiM;+*f?4{CoMiA$SKce)o}4q6N5rx?szq&Dw38OK zY!^{rCAFy_2z8TV&4=Ube7+y|oYO*02OOyb5BD7I^ZdAQt`ZS+tMaFrb6^=AxbXHx zH;=|4CCm%L{PZwSS3v3G^sH+#W3JcR_xs(&`Tqt8^J9}d0vU#im5^f#04JL4qMaI^seoYDXwB>7;oyw=|M z1!ayym?6XvqV3ae_f95{py8ukt2TxB^!VIzRRh4#rNu~y^X+P>L{SXo3_|Qqm>9wY zz(9!5s#OBElpmj4DRyjO`0`RiEIkUg%7D)8y}}Ye3}prow;JG>UQOIs{kfZSJ9bYz zskMPbH9)1H6FDf)1=ZKVfe+;jf`a(O{!9meiN~~d0iA$0qX=t0D6Ydx4#RO76h@#R z9_k7Z;$fv6G>QeZ{Yu0n&xL4%!?l}UPj4!j&Vs@?dl=y8#_IQ`5I-5a_T$dJtJ_~5 z4&186>klZh{hfba4fr z6PwPau1z;L*OuFz&bh6rTf>}7rgwL{vsvHnW-Tgd2hPI}&i8YE=X?(f0PF88s3%G) zL~ga9&rja%@sULWLY>0xDcP!aOR+%eUoyJFnDMM*${oSj3a;9@k z?EJir4=x&dXBg%M8gg?G8D(;HQb1#`kDT^wiYFX2G`0|w(-g*MDHJwZ$)td~ZXZd^ zM=)UzLmd}~FicPwWyZ*_Ba#CO>rHB6>1>>#BxM)&QmCCWKWd?Nyxg z+&=)>6*{48at&4w&G;UI(G>&G80eS6s%?jEY7r{)3Wf}R$n|zStvwYwpMBs&0#Mpy zcZ}PEP+CZgSt-0{y6YWb^gq3VF|!w|!LPVeS&djM1|sMl)ZiNDpeh023*EHA5rTNw z2NmPHj~8At$fubW(Ar5}A-e;lANk z;&I0_l(AD4zwJ0C&ELV*x0W^AF~SJPZ4|Ri5*=L%H1XLGNhEkaL_j<+iFQ#NsyJzZ zGnr}Ze-3FkcX%m-Z}8^bAObm+L^Sn+F1qJ*Yw+yxJi4~{=tg~Udf;N#UODH;zN}dN Y4=LaLNh@8G#sB~S07*qoM6N<$g8f@x2mk;8 diff --git a/images/icons/status_busy.png b/images/icons/status_busy.png deleted file mode 100755 index 987c806fff759fafe2a221a8d1eba225a3ace560..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 751 zcmVMm^(vTr!>t+|;*hPrMu0kRLK}h1qZtx06|w?a-}3^qoWvxT zfGus7FwBUs(l#`$Om={_&1eeI{;ME6L5Jm!CgE9<;a*I@LCbfxzsBOR;|S94iWW$Y%n_pb3sBMQ?EUhPdzat|DF7MMoo}#Odu|*-#@{3>z*~tL(y81=;uZeUhC0MNvg+l|!JR7U)*Ljd(7Z>ZlA!;mAE z28_{LFwY3!^764(ehIPL)rb}qrN!4(BV2Y~0sQ#0j&hSGU+3y+>f$g$jds6Chbh3? zZN%c~0<6-Wm9mxO@RhWApCP33pF=vU8{R0>yQ4LanH|+bX7AiR=brjTXM8d@|Cf*C hq>WTt)Lfzb{|&yn-Q8GmUSt3O002ovPDHLkV1fp!UoZdw diff --git a/images/icons/status_offline.png b/images/icons/status_offline.png deleted file mode 100755 index a88261a65e7cfdd6cc724b95f322857ab4011768..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 422 zcmV;X0a^ZuP)guf5051u^hG_WwKQb8ui+Q;x{7X%|^Y&0xPbV_6>a>1n71xJ#O zjD~@M$`ct9q?!Bbg0q&vEh;stNEApDC(Ba13yy!P+##c*P~w4W;$&Iufv}pTfQ-Tm zdG5I(MU0u=gm-*pFN%bYN|{H}gzU+=6QbVu-m7iQpne!TDVN%1_maZRwgWInz^rj-iiE`ej`WTM zRSR$kWHTx*hyeBSk=JUKdG_TQVeX5bE0{JyvV@u~P^D5s5>{3jW?s+db|lDTKTqGC zTB;fqj*8`$gA$E!<6(|fX0z`b`=!k>_Dp1l`;Nt~oamI2oIL+B0$>zlG-M*cEj-Gu z7G6GhbxY_MuX=WHbTpG5=t*22KG~LR)dDD60x7<}i*mIYa*$(UU#um+T$+%4V{Zh% z{cOt!EfID6%<))iH%0cxpsm%7NgxhbM6#gQ5TbN040g35dFYa72VLzg{mo$?eiv;5 z3j$KPDe(1gAtZcVGSS|uAQ+1u@epX5(kV+mX2~2LJ#7 diff --git a/images/icons/stop.png b/images/icons/stop.png deleted file mode 100755 index 0cfd585963d255190b8855a7689e8da1c4d7cf6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 700 zcmV;t0z>_YP)*?Fk0YVb%?UEFajs1S?+YtYiPrjx0+ z+4YbyJXwz!SX#yqTlhtNQ%Ku9=RNm$j)&+(}lZ!UGGp|@|O z09YA#-dR#rIaGe;MBLe!ht*}!c?U}6YT!dfHDO%~>xtx&Klk-^WB==sC_vP4ddg4L z#GN10u$+QGf$!(i3&8VpF6O6+ef~&gQ#>AVqCJH_utvKMAuOeG%3%mn<<%9)yb~#4 zHc70e5sYyQ03$?zFUko7D1Bg1=6jXvg#bUm1b(pVKuC*}koEKGdj<=zdM#RWsl+kfRf;OU^G_BQh+Fc$z&F_AHuQYu(b)aq=H_Fx idDl8IBmWBc*Z2i=4uSP&;Q8VJ0000pdEcNn4H`bJ0C+qr9t=q z3IB5(AiS{sSlm!hKmUK){R9C#j!Zc}`+sBs9tE)p5$}U$;ZzVK5OzQCHlA<@UGIO! zvj@U9`H!I>IKl6{$7vAD0_aTr_h<@&41C_Zzj3U$sWBi>8&=+JS@R&I?Z}LC6Ka>< ziSIqJ^y-`y$KLO~__}A)lQqX)_H2Co>cjU-55F(GJmb^1-;Z8>X*gIlZ~vRxg%>Io z-^ibRWy8r=>rTEbnR|8ag()At{91eb)$J!A?>+xKd++PH`(D5M{Bz%>*U#R5TX*tR z&Azf}+a9es{%XS3XYoD9Lfek5I`(qfu9vr;ek@&hJ!SH_H77o9I{j+vnHL@FAHDtb z?>`;Ze!ObQ z&CX*@yDq%mb^g_q?a%jLejU_u_{O6T%MQQ%^8NRJFkqlIQ2fcl$iR@opaU`(6ekSq zTN_fEnp;|%lwCti0~`ZwS@W#i?jvO&M3k*`3rs-=0FEcnYDL{e28UVCeBMbll diff --git a/images/icons/table.png b/images/icons/table.png deleted file mode 100755 index abcd93689a08ec9bdbf0984927e8da06c043c7cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcmV-60?GY}P)>q?GuNnCdgP^*Bj5V_b?dAq2Ppn9^MBB^YUM zad0N-T{Ujg*A6d~mYV4na=hT4Nz+_}SGTgW|Iir!%$ z;@OGkWI6+j0H}~K4RYR%!7y|zM`O@*K>rL{*&}x3lR**HrMXC1->#slU>X|w!U1xQ zqcP)5jnv(m~oD{XNgT3)4vA_BpPAR^yYtKhdYt0F% zRhCi;sX!=&lnSXdLaG^CB85gO^}75>ZomdmT9+LPq@?{z=d(9HZcH$cN~HnRbYDRz zfsg`M30&z;S1A&AC%2X3x-w}7K-`DJ>yH0b_ir(QE9A5XQYrwdgM)v3=y!r-_us;n{0~Bx1NSxhn7-09ZmqgoMF?+)iQgb#j`e`+7534TN z0IpOht+6e*T|bCrncQg@#4y1G{LUj{Bc1qjw-f1V#cMdE%w2?U!P3-(1P$1h!NI^n zYF>po5J(3gHuQ{%fmY__6fxCz9dEM1=f*ao6DG#gP`>$-fmUFfQ2Qo~WyR~0Pz{s) z_nEh153w(m7@iS4z7&$=Fjpf*6qeoThyw_P)*6om`?f4(mTj;#xt=vi^`x%cPptPc zrpLvJW-}CQ#wj?(S8o;&mxxet6D`xAu4xF>S4X5LM0(y{oc<~-uVyN`jDhEG>CCGD z|Ek2~;!_YJ?tux5$LkQf1)(zOYq`k$bT6^U5=P&&kzGi+A}aH!shy18Z~8o~aj;gW+TQDw?~0 am(K6d-%A+Xv@1gZ0000+yNHT~l6of{*&PTYR_F?rItHOF2~*!t{OV#1%(2P+oeXgOTB@bZkBePw+o z+pCt`{1Fiu*LV8o%*jt8gJ$(uLP+m)@DS>*epY%bvacw&ujg=&qAJ zo1O%<9KP}B!?MFKzkL7w9}E~s0g69a7#SD}7<53IKykvrzNev}skx=Kz#v1z$TC&R zIV&~eA6p)v@bJy-Xg(lS< z`Jo#bHi|?wsU##hg{YfyGH|jB+1NKJ1&inF9ogvM(j>vi$jZjd!Og?P9-X5bUl73< z=BjU(ChNzP?<1+^zo)>U-ES@vBNK-}!es@fIja1-_H+t)yX%-4v-Iv{ddMTrE_b6t brqX!=uZ(DuiKlXE@9F7UJSTNTI2fz}Gg2=? diff --git a/images/icons/table_row_delete.png b/images/icons/table_row_delete.png deleted file mode 100755 index 54c69691ed338c9eedaec71cb13a270220be2af7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 629 zcmV-*0*d{KP)Li;xI2>OTl7Fa)JVKX4h*B9sHXiuNA9 zyc(UO?QC7~Y+!tj)|OKJcQIGqffGf|2rFPrtCX@ALUAZ6`W@G(w0wSffv{$>}q7 zF0;()N|HiBhdSHk@w(9Kztihmipg1u$m;O-AzvM=$Lfj3f?tfrNRL2*s^7KD=zyu+ zUW>(jrQERCtT%cw^7i`h^!lyG>Fx6PfWdlvzILd_?>vDvuF2|~z3aN&wx!ja;_CFB zzUz3S*j}qtJ%Tr^$nmnv>SLu^U7%Io=kk=d=hET#mbT*F=kt@xi;l^MYM0SpkIP<; z%Vd+zXqM4_!FhC@)k~8@n!M}o^ZAIc;)KI~n9h)}$mp!b>2;yksl@1vvgB5W$BM>; zkF@1uu~|))MSiH==I!=XhQ^k<>3yNlpTO-*l|-$_>aNM@leFKe#_5Et;F!AUhpyo{ zeKU-)tmA6p115@%Qoe z`cj0$*y8Y}!|C+*`~Uy{|Ns900000000000000000000000000A^8LW004LZEC2ui z01yBW000NSfOvv~goSuFF<31`R&HxeMqV2oID#g2n30n`N);ko2>=O68Z{DvVsa>VWKyuj zuntv%U?DOKSr`jZF9-t+2L=iS83cDjGc+(^YAPOZY@P%OFonPa0S!(Fa0gFbfdCZJ w6ftuL!UtGdV$r!EXvv5PR9NI_L#L!k4uZG{0dmGi1SfN1%DiHzW}!d;JBceg^#A|> diff --git a/images/icons/table_row_insert.png b/images/icons/table_row_insert.png deleted file mode 100755 index ff5925efd4348d1d1241132594f575cbbf3cf05a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 641 zcmV-{0)G98P)-noa^PD!uTy=iPbl-1E-7=MWKA5^nxYxsN%{ zYcg%d7-$11o3+IR#W@}tS`pXHSbz8SOhjOadUBbKoBpTk)uG8fOA44R+C2RI9(PvU zML}|wTE>}c^>3Fu`XQxW(?C%3plj#ZWp$qqm{jT51AA5*g}23J5gbpqKr|AlMFJbA z4yAB^WCkY>dP}v3qcg}Ii08lkpjm-r0yYwEk{7=(BAHC!(P$A)0!S<_8velQc+Dyo z*wMNULdFCMdj#u(n{<%tNWtY@cRzRIL?(qS4;waT+dUlF@6~>-GR+Ez=XT@MPbJ*` z*aan2gda~|fD{rB@)BVXB3uv%sv!c#=}Ura&6Uh%Z)0bAGmhOlj4dr5OO&|ryc0?) zTt73wT{Wt*ia9xlO6a2^e8%$_%n!lo8=RtxN82zq<-=h~123}NRpCnZ8SadqYwldF zVOtY{jMSkwKS8sVkY0W%k&Rd5C2H^8NA+N1sWHC(DAVbi?<|az*F0dbd+P@Lnq9y) zZ!HQvuQ568M~3ZcU5$yKf12)sF=QGp5{+CdeA_FuS#STZ9h!ZS(c@A7yiDav@T88N bl|JXclv{aX%Z3zd00000NkvXXu0mjf?NAwh diff --git a/images/icons/table_save.png b/images/icons/table_save.png deleted file mode 100755 index 25b74d18f740ff208435f72333a1633569c0e833..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 723 zcmV;^0xbQBP)9=EBdhkBh&jKg_`&J(Mr{5K9?YB z7%NS3^ZC#w7o(tnOANaU&GbDgva8U-z`c)j6qd7VU7r32pE$mM#UEBK-6|qt9$Fs- z6>t{%pB71ynwG1c@8bc0>raNK6Dt8qRVe;QF-EXH2&zgZfzI{KWSyaNeKXb?5(OWH zv)$_uQKBdbLe2@*YL(JNiVIR}Vqy(9UXB8Al#S?e6$ef`OJ z*^@Dj?#>2+q<{qlHA2?aai;eJ-%1m>7t)ru4w<;#O*nKUzaX~*8Diz*A!^1TLczbnd@cygZQu8S|yQc0M~PHm=T*UUVeXvI&U+E-jSmPDu1(PvLywGr8TgQ=M*)M_<+{4|1yv{5RR4tt*Wfq6tg zLV{VqgJ)69K=q3ablpCL%L@Jenx}`>=j@dCAobP_wYPDAM3Q7fL890|4 z#q#quqV8u*XLE?fV!B9yx*?fNYUt4!L!nSOsV9)M1v7z%l{QTPbh}+$%sJP^lBO8; z3a;zI^!V?C5EafH8AXH{TZL+c?Yyc{Q!(}Glv$=hf_>95_YL%VJsl5s55{@|)lF+a zE1Wu%&|-!|CLG7nKMr>flBfwxtpR;Z@85+l-@7=lHwt^xAuTMJrm4~2xi4NQ6w;oW z3%Uilc5~@%))oFv^}-Y;b^wV=Wvg>0lR-QlN3+>PwOWO3+gc~WEu+sIv|_QikCLa= zhy*j8PT$UEvnZF#sMqUrl-p3mgx7y17`FNO`B^GjA)LwQ^N)kMUmr-cdnR<{ga7~l M07*qoM6N<$f|JxSlmGw# diff --git a/images/icons/tag.png b/images/icons/tag.png deleted file mode 100755 index e093032a77d0b90d3a5dc05759dd6bcc2ad51715..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 389 zcmV;00eb$4P)OW%^N^ox0}MJJ@O#dCdMskq^A9kwxXrIWcrSi_3?zrw0R6UmLLRf9 z9xK}R`oI6&r}tpuA*){AE8G3%KS)ly_Kpx%1N2(%MMSTD`Mq%KtN(tpp59Y0xFL-s zCmpcp**%b4#M0;AfpQTj2Iw~2WeZ>a{A1;gH$Vl?eyiqOGe&o+X8A2+kX-4em;VE2 zKK`hXbcGGY1?t5&BSPmt{hqbz#ea{!2lwRTE=eQFNqbLybPpsKH1pASpj-sjFi=dn zB4pce=UD3Er~h4B?!v>sYto~887rRu2g%7rUlhU{3o;QG_$|wC9`o+J2ag5+DGxu` j)ZRG;k{c;WnG_5FM|sxYY1FNa00000NkvXXu0mjf#+s`M diff --git a/images/icons/tag_blue.png b/images/icons/tag_blue.png deleted file mode 100755 index 9757fc6ed6597438eb8e5a70a1ab2402cdebd5d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 586 zcmV-Q0=4~#P)6YY{78#rvt}vj%qrc zN=UU@y$E6COaj9&r1NAlaUpajQlL~SorN%pOwHs*2laYgHBA$?ZOd~4Rw@5yFm2?1ZIg`0V-$-;GT1Fi5dB7wUSNi^%`^Ge62m>OBeX610Nsukl}DhDG-mxT?nhyYH!4he7Ri8 zrq0Ti&UXUvqX&F@JcJAe14@BNBqAY_QZAPjF(Y3r7P9H_kB#@LgFAf>xz>Qp&n=|a z>ro1XLZK^nmO`PRh#C2OK0ktd7l6-A;O5?fz1gNnCX)yR0^5T)AZ%#@G{_P{NCN^P z(J0zvSn~SSm(Ur);-M~8^*;61*VRI`T1BN&LAhK;sZ>I-SVW;vfUfJv=ko^ugnc0x zhJodBxe>iyk3%w<%wC8holUJ4(iv>tL{`DQt zPOsyUbO_Cmc&*iHkqbm3ku`|GcC^OhF>jj9W*GkH;^g!iUVpib_h*=@udp4h(P+e*zL_~ZmJjh(y^BxULwq>9zXoYE8sq{#pN~U0C6!8vY)5N2 z9P*}mw}7X$O^qTtJef1ACWvJT9^wt-)Zh0r~j#0bT`f;-zv6 z^Tmw22!%rMcs!TaUX<-8s;X-B`+Xbo+_uWuFa z1yIPc?DTrQ7KvRhmt*TG|L=EYQ=LqFX;=Lp`4}jx6BE-@00000NkvXXu0mjf=s_29 diff --git a/images/icons/tag_orange.png b/images/icons/tag_orange.png deleted file mode 100755 index 454a59f30ca04916c30b5da70821b236df7dd934..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 586 zcmV-Q0=4~#P)YYm{!ci%zG5cDs#MtA%E>iAJM=dcBTXt#$=Kxm1c}S>T)> z)oeDCkaD?v5u%VY38vGjbe>Em9)x-#1qy}2S%^ZB=`y)dqgt)jH=7L{$B}&kmP#dL zv)PjngPi@y?F z?msb!MgKs27C;q`$Nl1^87)}9-#;n72%w5aqyBI>%t#yv1bin~`G3EwaPlhB@q!hxI!PKQbx4SpL{`r}VmgkO zKJ1rs_WIV^Cp$u~*F(44MZ4WbtJOlY*+iq!K)qf^tya4OAlxdU)9GNp-=EcdKIf2f zxqK5MkTVHpvl(}uPNxop&R7Z*3Wci>fg)2gxzRzjTCMB44$HFmIRQ(h60+IsMTkJI z$3`aJvdFXbdX25Rfl*oUyUApNd_Ip%CUXW6$oUxAwr!Budf7tzCgJ6?1fzU_jK^b2 zfn+jy0uk7ZrmCvEX}8;PXYF3X>c?-ad@8i>vI7~7Mw9~4Xw-oSl}hCko6%Ghg*TZa zojb2QDqe$2yuO1BheJw%P$$M1@gl$?5#tJcsvfD&-d}drYvCA3ZZKYBvF_B1^w22%tHlRHzus60N_IkZ8=MgV0M=TZ-Baw(nn|S=hBxdI) z;;R6va5(H{FKyC-4F-dY;+p`fU@++R`~4<~Jsywi;wt~|cV(__CjM~k{x92pJ|?T2 RMYR9`002ovPDHLkV1iy62OIzZ diff --git a/images/icons/tag_purple.png b/images/icons/tag_purple.png deleted file mode 100755 index ebaf0e8743fc33cf152cb7694b865e8d8adbfa90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 599 zcmV-d0;v6oP)GWQRM3$+Tx>2G~D3qqtDdzLJ$P+M| z%_5OV?1V_vbzR8Cf4JqIVHo)K^%pXcv3TotyGW%{h{xkw5Q#dkEiV=ekof!9z?%~d z=g(E7!z)Oq(;*j#L?RmyiObN>-n-ERY$OQs{fC-WE z`TR3JBO8xbMN0KSbiO^m!^f-pEr_bBgH6ZV(+;jrKl87%5H3QY5S&iu(~XVt z`Q%tE#s-6d3Aucs;QCb?w-;^voEneC7ITEh5sgOWa5&8962;=`54d^#1;35CDRwv< z7ITTajw2Wh%6`9}(Iu`wF^PG8L%bJ2;q&>deAA2$Oi`4b;)4JRkH=$mxm=9IcDvoO l^OXPhyYjA9E`GA_{V$1@FaBct0}KEF002ovPDHLkV1kGx8r%Q? diff --git a/images/icons/tag_red.png b/images/icons/tag_red.png deleted file mode 100755 index 6ebb37d25f58c68246d8ad6a015295dfa5367870..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 592 zcmV-W0k7R5;6p zlgVxxK@f)LC45c9TOf_{d{!)DV#gQ9u^lTnR)N?B4hRsNK&)mFLI{BXaU6RP-Hd*B zb;Jb3l0#jp`v2;$?rNpgYN6R|qF%3~R;!^}t)fz?pj!?Xf$9L#$Jra zV+qOU^Cuw+btb`RG?JZ%!=VYGoN$3mCUX>`kYzed-6&Bk7R#EZfpaeN1kB}fNG6j9 zAqsWf92DY}usm8Wm*DdmSn7|g4F&_G(`h6Ui9Luyoi~=(>orKcUM#@A*}%S@gC$>N zt>5pH3q+&Q9f%@k)E7cPhZtkvGtt>@1HZome|iABzA_=bUXNTL7z~;arBEn*5i{!Z z`TQ^BwFP!@4*qZt{`(pH*W(VP+wGDI_d4WAzVcfivW|vfP^h0000QiaQF5iW`b6E^(ZmMn^kdOo-E`onH8J z>I^oDOD^i7tLp#iuVX0<1_Si_eRR8BbUGch+ikR3Ei{`=G#ZU70Mez9dc7VT$2p4m zd@dl>YV{&SqRAvsRaHz@6vc&5j=MmqR5}Zh$TBt4G)mO#_2y=?fn`}DPryp0f_y%I z5+c#mT_YF2aLcM;7%2yjikWQx$AQIn^t=DVOWSS;S{So@FPhj^qFdn`O&<--0OvnY|@wf|-YPH%sz9Z8# zO*CzvI(X)jneq*W`tt}f9*@ZdB9VxI2uitJmidlswOYMG{`5KIBMjws55m8-gs2aP zLvn#oD0JoSQYaK;z9U;Mm&cHYA7FRacp6>9u`S^unM@)O2)sRbQNEv?&1TtRvDkxr zfPVJ{f2X&2F*f^RkGsNtWHK2!l}a(X#8*fU&-Y*9ScWV1`~4pG5le8ujv*W^`bq(deZ3B7hB~2~XTCyZ1O;cQ)B1udZC+u$StgkNJem9(+80{W^ak4$r zssW%66N!3M{XR?-QICiq>aimHe*MqdrL?~k9;}zz&5;}{t9NlCTfU+yw_XaW)Ch4whj=bo>I#_Vs6a)#}JGIWNaL~IW&KV7+rh@w6q zqeyD<^tSp;x2rf+j4_xmzWv1qE+$Zq3342N^(Z@89#MUG1~^fiDr4c0`S}IXK@XQ% zHvj1p{<^sONvG-0)W=J?X0zSO<%?$h<`V07dt^>zfOIP#7t)x%Dqs7rGa}Kl|zX00F>> zFMph>SIQr>nsqXP@`0y)H!7nnulA@`>O|$nn~&zf+b7SPczgGU&P=O-3Bd%670gqB zR&A7>`vby4iK&BQ)w#D$eGU*@`syR!nVp%dR;q05T11s%^d!K0PpKG@#4)`+p;(<_ zv{pF*5CSBb1{+(u+}e0Rk~WyXvPhg{I8jn7SZhg>lq^YESze(ODM8Q=9|N4VSWz

H`oW|{1}@v@LQ05MEhB<# z<4=>;WR@@@AqLtaC!HVPednGQ<4lg$g~L5?&-dMX?!97W^xd6Eo$oxkoJ>mN{Nh?T zKGK`#ALG)s`^~4%wdc0Bisi*@repfmSR`f!P$zkx{T@z?_SH!)UcKGidA1{0C>G0$ zA7?uRzSSI_Ih89GO69MgXFKNKK98zQ zodDp<&Bv*(&J#KH@!=2Cb72$}=}dR!3fra9w=bFS)4LbZ-g+@J1_uWp0QaggGoz)Y zB>|wSc<)(XUsp53%urPdg~G$}@$up0E-(~ceR!Hy^s(H0Oy=QCCAKYOhW5XAsPII%aO9W8L<_45+Wpm z3J{2(s?-F|Ih+_O=Jc>IDrA4Q#$1Wo2cBk)48vLrVrKOB_giagE2{e6@ZQ&E?>*UUmP{riNq~)w4Hgy_YKz``%3%#1@% zpUUhS8NL$7k~=>;Umibxu+IO)Jr6uPwBy#T)kdS0%uY|1CO$ivikSgykbFP=Yx&fP zLmMRfM~@7R+)}DGTdidF!nxAqmv5&4eF4BjPra3?Y~6ANv)tLUv*i!pI9vy~`@ScJ z$~(7JTg`Uz)1`Bz^WVIit}`110QW!gN@n{=p{k)f@WaGZIZa!PRJK=}tL^sBGn3_u z-@TXqvtP`Nv9Yn|fM?caW=1}rj{sDa5CV&fi)v<=8LCRN*?fL{eEe9v1{^Iv_=5cV zXl9@WAsC^p(fo?1tzf|N$%99MV-8?&a8UBs2~PeCchy*^d#=_!-5^8)4)ER!^lHqE zTnsmE7Gie|PEzG+Ev1nLA`v3j1Dpt|N?+i;$7>I~J|~Fu;6GNoSYQnn9D)H}f4Zq|7y4@}vHPWuJni?8OzpbL7CAy!iRU5wxN!S n4dUShi40T0&u5wX=ok4L@Mn!_V?Zap00000NkvXXu0mjfm9%nh diff --git a/images/icons/television_delete.png b/images/icons/television_delete.png deleted file mode 100755 index b9a58602519e2274883b9a0175b68dba4904b063..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 810 zcmV+_1J(SAP)HO)t@7&{J%4pS_+?(Ixe&5MCN6d@^ zZ=Oj#IkaObiX?q$@n&J-*uEXxuQ^kQtmM}|CPcIg}_;{=eF!I8| z-ooRLl^XSC>z6AtgO@Ixjqfv?1OR(qJ&_t7%9Ye7JwHv&72>$TP;t0aUu!mh{du-9 zfAL)W&;Md(jE|4M1H5%#W@cow*$_Zg@!nG|m(|QLGgOs&z5edR#Ke(k12|lG={@=P z(9A#$yf=JP!<+XUO$7t)p5AvDI1&J4G8xHk5d!%yoTzcD>R72d5-)@T0pOeyXlKlf zbOe1{g(&zNZpF$nDjk7y4ySE!TUrol!*|va%(DRt0YV@`U~~i# zKpe-!9@way5~JEuKoBtkVEF1u`sY6)RW4EM%`x3Z+pntP6ug0YPtAEUsQ{-&5I|x6 z6i@$go?ZK2p}T)K&4q8+adDE#JzcK{07;Utu11^~Yq6oe-Dg(_Wz^~Qb2}z>u+u_)-Ebb7&PWv03^l>Tc;N2ur2G2e`LWKHqN6!NFFPZE?(S|X zlgC+JUgp@fYmDXdIOix9i(H+XW29#*jmuxL<;&MtZ{DT>)b537$gQZe1?R}+a=f3- z@~A4RN~KaEpU-onw#Jnoz9YZAhbZi#b|>L_Il%BAikUGwI%=z{t9b7_*UUEMXCG?t ol&tVD34apuef>c`n7S>00b`kqs~MqiE&u=k07*qoM6N<$f?b+?G5`Po diff --git a/images/icons/text_uppercase.png b/images/icons/text_uppercase.png deleted file mode 100755 index 8dcc2dbbb212b01abbf346206e933171945a3257..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 747 zcmV1EDu<7r(0?-_Pg!d!8HsIpt%b<}90x zDMxvzT_Vm56BPEut@7@FlT+>#73arAln#?v$sox)-W#`G^N1+86$@nrD76#CNgD|j z_a_)?WscsChp&t$aj>1st^u`bs5MqLl#s1q!;FNIJD-qmh$yoHoE}bqTGtMnxgu)S zXoDkAd3!f>k1ywD1<*K?IK*&k2aFt3IXm>#{>qBM7u`^M>Yl0H6}c6Tvc%1Y;s6sA z9HxNuzC9q47QaA@(}c|cs5Q3V_yPIXBVqM}o|o3=U08}fLg$kX(D3@H-r_A&K#NIFG)9+GxVtF9F!gyg1NgI2^_*(Jvebfwh#$UpQ#fHM+-?h|6-K|Xd1IR2c0OH0 zM<9&`ucZ7ZKptw|n0`Bn`>&liW-Rz_^h;c`muxh7$a4SU7qt3QsCVxIpkaa5md$b) z=lc4#I)h0xy5n!C)oc!?VVX~&&LuLtHrSbFU#h5eRzSmKd{gfhDyfxeqxM$cDzr{v zZ$Q&bDzDKi@?Ak5_0H&mj^#4nsvQ$xqLAuQeqv7mt!p*=640^H^*RT)QfvRXQe%s( z7+i6f=Tf+6=R>;!^iz_)!$+%+$3TNee%)QN^RQ4rm5qe|0_Z(bUgl1E<5dUuLu-!) zYFJ@kCg|W5)XFrt1avQ?QOhQAVSp%q1L!72J$+r&(mQKdBHsxbERuIs_xOoQ8-Z$w d$ibbN_z9tvwRADeG)w>h002ovPDHLkV1lyYRw)1g diff --git a/images/icons/textfield.png b/images/icons/textfield.png deleted file mode 100755 index d37e7304e24c78f335466b07a898480a26248edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^zbpD<_bdI{u9mbgZg z1m~xflqVLYGB~E>C#5QQ<|d}62BjvZR2H60wE-&9_H=O!(Kw&{<9vg>(FMnYC;$IY w3^*un^MTdn;7P{?4C|HS{~YI+WOIxGs_iP%+I;TWWS}+%Pgg&ebxsLQ0G+Tf(*OVf diff --git a/images/icons/thumb_down.png b/images/icons/thumb_down.png deleted file mode 100755 index 3c832d4c83cc0f7869a83f88833699daff52fcf2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 601 zcmV-f0;c_mP)q$gGR5;6x zld)?PVHk%KwHXvA{{RQkK^zqPQ*`Jo3NFS)5G+C!og7>$D6NEu!3M;jM7RtZQ)9g& zq2Y3PT)1!{94U9^xG!8xj6)xXFPclGw!?4uK6oB}yu5D$NbE`yI1Hp{cTP^eKY;ujW&%y5(3%q}8&Iu+Z9^2vgn!@=`cv5NLoOc^Y;-QuG-PEVz;+}o zcENrCULQOkUgTneivF3xTc}jz)O*_!j#u{k5_Y%2vSBq76X>=lfe@Sy)M^rlSN41< zFBak9y3SHYoe91;AFxb0c`@LxEMB>3K(+u^@@dlfv)n11o(YQ9DYCV@ysWAe)bA*@ zA?~zt*M)ZwRm*@RfYubyBDcy zzi@ld(BZ+WEz+fP2fGEuIfi0A$28@nAFW2*$}b-Lm=yg4isoRq;qlX-+{iBf5B^t> nvr??6H@Wu&uC1-?2Lp-UJe5p>RuR>I00000NkvXXu0mjfVs`!d diff --git a/images/icons/thumb_up.png b/images/icons/thumb_up.png deleted file mode 100755 index 2bd16ccf294bd944c6bf17fa0345885469980820..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 619 zcmV-x0+juUP)EAdBAPtT3aD}=*%{NbB*ZGcS?IC*5jinhDl=TC) z^a(zA>EnR9^9j#^IEMZn^!id5#SnEtL|{9h>X0|4DCpP8H?Ix=ni&xHWU$qNT21yZ z5^*RX2qmP^fMQ*vP*nzi&BkZ)YfvhI(E`_#urPuk5&HpnzVw-Gc(=*`uwjlh!P+m)3pz5ENXE;8&W2W*v~T!vOF>0KmQeQ*+S#{tWRxh00jSgfv7 zu5dK}P{{s0ADkp>$Chu@w&3}~KY;h%H7W`eKSHGHs{AQG2a)rMyf zFQK~pm1x3+7!nu%-M`k}``c>^00{o_1pjWJUTfl8mg=3qGEl8H@}^@w`VUx0_$uy4 z2FhRqKX}xI*?Tv1DJd8z#F#0c%*~rM30HE1@2o5m~}ZyoWhqv>ql{V z1ZGE0lgcoK^lx+eqc*rAX1Ky;Xx3U%u#zG!m-;eD1Qsn@kf3|F9qz~|95=&g3(7!X zB}JAT>RU;a%vaNOGnJ%e1=K6eAh43c(QN8RQ6~GP%O}Jju$~Ld*%`mO1p`EB*FHYdKr%;k=xO&(k^EfNlSiKZ>5l+xr|%SFOV@6-ysFmD2F5 ze93OiS+LaQym;|2f6tbH%~V`D+ND?vc>4J^KSLxEMifJQ`8>*~y^+pGr&o-n=LJ zGWB(yB#;DR8&Lhqi{0(#wc#SwSB~jZKzIFx`8od>2Fo-Pfe7*M8^q#qw2yTxiXzd~ zRaz|F*rr78G`JZXG*YX~5K@5k>G@0HdlBo-6v1jHye?%qRwO@+-hO7J^4LlPG>@A1#{ zQFl4x7tnG)+cz_2Mq_f*H!U)kgg{iHqxT)Yr3ec@K!`)z_%h1c0Y2Eu(dMPkrhq5v zY+bKWfx|sTiOEB71HuwS*CDzA%ReBv4*7Zy7RM0n6`5#chfOJK`ze)Y6>d6Z?UmyNHH!3DdsP-ARyDo}1HO+>7_um7 zx_gj{+_aU_OUH_~Jd?KI#ICZujD`of2mDpCv_zFGE%6}tfL|j!WGu_i-u>4%{%d{$ X7`zMSfT21V00000NkvXXu0mjfkBx0` diff --git a/images/icons/timeline_marker.png b/images/icons/timeline_marker.png deleted file mode 100755 index a3fbddf88b7661e9ee2a434ad4152cc724db24c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^zbpD<_bdI{u9mbgZg z1m~xflqVLYGB~E>C#5QQ<|d}62BjvZR2H60wE-%+>FMGaA|c6o&@rz!QG)Hl=lY!! z1v*=JI|P}v6PV8&74ykGbnHgML`m~0TYQt3?ajRZzjDrI(GNdQ-+es!^5)m?umAh| z_lML2hJx>}8mr}YRTjS1X5c%1=To>j zEp`{T<8b2%3kmpmE&u%$g;f!Ou2+6+ab?{tp`+Eo<@Tn7>)N`e4#yAy(KQ_jApxR2 zTwy>}5{4Z&HZE$4TztEY4eB^wEm!DE&<6VJfqm!9 Wxdqp5p1KL-FnGH9xvXIO@l#-%@K+Q7zAyIUxr7=;KLsPe99&9Qy zmp_aWYb=E&ic)qE1ceaTL3I)s3+v0Pdzpnl)xpCDFYk3f*Ymue2{3J{X-|sELAYmu z=`Mqi(_pe~fr(oVM(R_x-rovW3XC#01TV%_L0BAvr#_hKf!+|yzTW7{?3 zIuq0Vz);x1M>XE7-^4 zB)oZq-|zSSd<|RjL3Q0FaG93$Sb#=w6_iQ0NQ>FM@oa+ksPjrN7+e#)=Jk5tx!vxB zO+TG2$)d_PZTpo~g1ZG9e0&b?=MikQx3}AOy1Ns6Sn&5>og;!Hg4gVJ`{#y+hUEVS z2o4GUBDiwY}B+wa2=)lh*=g2T3C=Dq fF3wcNZJhl8^(M*LyGLEt00000NkvXXu0mjfpmtoM diff --git a/images/icons/tux.png b/images/icons/tux.png deleted file mode 100755 index bbefe2ec455c42b2c8e8435582cc11a8434495ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 696 zcmV;p0!RIcP)a8B{-MRO+d-q3;Nq=BQ5k|pUEm)WqMHu)e1HsCoBnZl&D2fWC zaQI+^Ypcj~qlqjN+KQ~b2pMEyMH{Ql+1>s2yE7NkMta~2=N!)coZtD~5&$KI!t?Ad z$MG3K5aJfgx?{!872ITuZRI#lqksTdtyb{7RJQ~`I$^U_K{Co%zhNU}Spi{>7Y)dA z2T(yWOq>p(RuxZ;w1ML7gxm{mzWemI`nN(<|yr*`feZQuYV#H)Ari z1=G>vINi|>i=~44z?}aDs8rU})cijABZaAtpP*_$DD;f_AnVU~YcQ}?MFF~@lnxDf zyNq(_WL&)Po|mVtd(wFiQob0&DT1hhg-xfS-QxYqH-fm1@dyFt8i e#x0i4_uw}&{+U-AleQoL0000l0ldN diff --git a/images/icons/user.gif b/images/icons/user.gif deleted file mode 100644 index 95c0aaafea551ac24e0eac0deef9898f020be4b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1001 zcmZ?wbhEHb6krfw_}<5mxbt7q&VMVb{Z>@_zB;q|`<3;7e}C`t;BWO2{r2Pc&tHFk z{r>9|&>`=0MBekLrpKxs(`(wj1!qPG&5jV7;4M((BDuOT`rC!&t55v7^5{$aw*S-o zg+dnmEzYW6HMQ;7^=}br^FtT^|NQC8lkHu34x;bQE-$j@pYF}yaPWWPrhgUde!SXT zF?+-H=r#W%m;O6nr+sl{{f-3_W~{v;zyJJo3F+E%^5MU~zneUzmOS~NeBgh}?ys3A|67Evnlf+mngadO z<^`#CGB3_=`TpbgxoVBW*FImY)AF1C@9WoZC(3n89fjsc2%T>-$#zv*l&Np%yWF|= z|GWEVBUk+E^5PF)^zZGCy5KqgV%Pk8b$M4|&CGT${v|u_e>^(9YWk%Ua|-Wo?M&GI z|LN|&|Ns9pi~?$hfZ|UUMh1pH1|5*Wpgh6Aag0HhQ^sS%0!L+g4H<>U2Ok`ekXG|h zNIJnH*52oL=jUS;CMN4#1E)pX79PY?v@n@(zGCAmjw!~hM`nt7GjMVVx*qLQi)RsP3T9z%V3@(k g;Bbkte|96=3l*==EuNFut8+RG8a8fS+`wQB0Lds$1^@s6 diff --git a/images/icons/user.png b/images/icons/user.png deleted file mode 100755 index 79f35ccbdad44489dbf07d1bf688c411aa3b612c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 741 zcmVz1iyEv%?$mbQ(# zwJpuiQJP8?X_`#S8b+U_G6=ziYB!xPAcq{)ZJ0bECH@ zYx#`n8^Wzn^J!4>=q^bltNO15ry?0ecSLkjpT@vlid!jk)Fjf7&)q_V5zGs#3N%6* zbW~7Hg=&P0&~Y(|g>$hC9FL?;ttzPDZbpZu9OLb33^e2;FNTGJxScp1&q4M+y2ntQ z?C(=hpU$3~`Thx0eHwi0x`q+!d5k@|0_WHe%sG3e-s^MM`xM-ig!VcIA7H}X1ot~L zg=MLB4w-Q;Bi!!u2|I+Qb;0{{4Q53YX6+4_aXena{nmt*!YG7ua~`qc>o=?@U?rOU znS7%>klzi*muXnbM6i@4FR@s^8vTjDgy&%J?w?`u>NYMDFa_2%0SQ(qJE<3=<8Bzo zfdU60e*y(^$RF%r$kl)p7=7tlCDa$+J7w>}DU(O#~fk>pYuRvHi1E9^msg{tLeV XM&GIRvfA7%00000NkvXXu0mjf&%8>| diff --git a/images/icons/user_add.png b/images/icons/user_add.png deleted file mode 100755 index deae99bcff9815d8530a920e754d743700ddd5fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 746 zcmVR5;6} zkbg*1Q547RkCGx=+ZrJV#zL@SQK$qJV#CSW)Px1IG~1R7@Ce7&_JfOHMV?!rlp(uU_DLu%oT329{ zvd}^m>Zu}~l!lF)$vj*+!9ivWYi3=6E`B>+7|Su$tH+R~2!#ne6eorwU&M#{7<<90 zO$iMuFlR;n2z>v9nKwp!?XQQ|aSfBtZ^J)10wQ zP}rH=KSJQ4N-!Ms3A?4X%~8iSR-zylzlSXd_?|M%f3%_Vax4V#xlec^^VT&5JP8rX z6}RO@h&}Lqo`s_<751_e20DK|@e2`2FToK$y2KTlwyhFyPdYY*B{>w4$%B}fnn&9d zQ0xQp-T@b00q1)Ft+NxwMg`RMry#!}42Vk(RW1t-$ePmK0V@&mp4&IBO>%w~~-qNFem8*NKi5C3*h;eH{=}2kRqEdNlF-|c6B{jNg1xE|{xZ_qq=T?P)vCi#|P&Xm-dkucwL z3)87{8iWe96huvPHfK`KOdC2Z({T6vJ9pwDx$D4>d(Pqff6w7Lmj{5i6;ZyPPpPN; zroaW=6d#@oL2Fa53F~$Su10(RG%K0p3VTuP3?Z=nBA8z$uq+XLUL^QrC74`bU|!e| zr>hK{)%Q!vdmIO5Z3JIvaOyjOX`X@c8-ua03`Q&)f&%p*{(A$q`ZTTjk%q_T7>v^J zu!R-a9fFLScYlKkNBP_Cob=9m9JLVoC-?c{)eOtMnh7qNN{ejy2sM{pS^mgFHJm@(buuM4>=<5Vr$&Kzw{B?uPr; z(1Yf=#g)zADkWnx=MR%ykl| z3Ui42k+O2{bCn)01-s5Sxp|z{G2di&KT(_M6;$EI zDL57JFf}cw4bP1P$pgTRKH$0@h|~aA>j`qZ2*kU5t2EVD5#~@VNhqx{vz8ethDD-=+1vnemftUBA zF;N!Q%PBB5B=KLB#QO(CHe?;R+-C8M?ppDW>R$5`cCPq@YpusFRTaH1i9Kv;l<>I( Ze*oTy+;kdDB`N>_002ovPDHLkV1l3CM+g7_ diff --git a/images/icons/user_delete.png b/images/icons/user_delete.png deleted file mode 100755 index acbb5630e51a12a1cd30ea799d659b309e7041cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 767 zcmV!wMF|0iq|AK>&MHw6~-ksQ9RtH+=$?!G=zinz|BNIO*d}XYdmm2K>Qw%i9j?X9SgRBJn4W5%uAclWG_T7f?M4s9q5$`w5b| z31S}-Tq~-?NahjDw3mU5cfqF5z)+g+pPplGDyLv1f8WAnTQ+Xiw;{fhcBLH^j|gI# z2~IT;7{m9#PQ$2>16f?4#0x*vLFksSJ~;)W1wO>uQ-rAG1{C+&5Zw%%))Pc(2_k9< z`smoi)Pkk!SK)SAcOy>0d#x(Rl;b_GP?XFE#P>r%M^9Kn>j@#I>kHsrS$qYvKE>lwZZUsXcw4nFNHZZ~?%71a&2u7&aV|47ZvJKBUVO{)!ekB`ACp}1 xSnjsa#jtYM{A~v!cV^R$X2;lcpKyd7^}lwPp>~q=QF{OY002ovPDHLkV1lJ{Vb%Zu diff --git a/images/icons/user_edit.png b/images/icons/user_edit.png deleted file mode 100755 index c1974cda745278a404b9e29fa91e0503a84accb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 833 zcmV-H1HSx;P)wKwNApj*j?`*x8fjj}+T^cdNV;=~VOf{An4CI`(Q%x}`$a=uBQ`IcOG~+O zhFmpv$jQAVt#pVn<-FwXyxzC#)@;^BTYr4EXV3Qe?Ah}?KRp0?|HEG!QT7K}`6R>T z0?GlfNd&N5h)SxRamGIduGtwfO1+4h$^b)DXu0o8M7BEtF^>B+6kDUTT?1tl0&27( zTPtN#enUj2hcV)v4ROVeu()d=+i@S-%91h3XQQ_&2GLH&h;==J>*q}oafY~7o8YOx zW1up~WKKQv35z{tnCiF(G50p)FLR-gi@=FATO4h+zckVifX~k}G4#+4;u7niZGj@H zRkx!55oQOPpc>+6Y1FM1A`bW&7GI~k7+8?J0DewkUh)LOJkrdTe3;U(*Zgc$Er)&@ zD+5(f%bInl-ZwzNw#9d8%I4~~7EHgs3zhUKHpaRkt%*?UWMg-Zz7eUOc8t^s*~Buq zNnU77^3>6u=K_U{g-umARHHXA*H6dCx-dv81Ap`v`JB`FJi0MFsY3lE z5Gw;{eLz-+019a$Hq}BXzXU@)LB-NA6Y>hD8BxCLDcvPn`&N6q`mxc}yMb~sKo@Ed zDbOI5^9}?Dhz0FQMoKPVwk00IILo!IfS6^eQMBJdKtv5PI+Tbj;^0Fo6JmY=Cj0!M zlv6P`lmJPo4+6tWG2fYveukB1DzkD{lX z41Nw7E`C*@hclIfDYh$GCw<#Tk~h)}QkWS=$Gv&wY2h|l6&7Q)uMmBi&Zxg?1_yGk z;>5+4_M6eEhsL=ygB_>Q-+`#k4z^f-l|x?d%y)UiW7wGPG|s;O<^@R5;6} zlU-<1VHn33^g%H_Q)k_G9ovjfnFiK+H+Wv4;+`mU!eP_1WYT1cBMG4+b^?L6?AK< zB&!jFQPqM`i@@k4u(!!^rBRBL3hHN70i&#iOH+^0u48x?v*GiYACKJzT+r-=qk+oz zUpus;svxs4gSf1jroEXH?t1wdY3Aof0-iGMy6$K8JD3_XyAT<+1dUmit6yK(! zNF_M9n(Bm#E9}vQx7n3q{&nCY)~18Vynj^W_e>bi@1BCANxml61a_7c$XmJMZk?*# z;GcZLxX)MuKlTCU=6xU;ncBCjL?Amju!Wp&&M@$uZ9p#m5yGvf5Ue8*EJF}(aLDzJ zAlPvPBtx=PWAE0I3CKlubR6lS2?)Vw;GM(ZEgZ6)VF+v#S+fswc_vu$Vh-L#8KE%#xl>f)!T)$#yRmO>TTOvB+HZ zV8!UbBF$h)Z%6VHiyt@rn*}fK8xy1uKWEQR=pEqAk+P7{#x6 x&>pVMG)#i!=x;v%@<9vjT^KNkD*ncQ;SaYr!-X7+DklH{002ovPDHLkV1noBEY$!2 diff --git a/images/icons/user_go.png b/images/icons/user_go.png deleted file mode 100755 index 0468cf08f3760dc13e44aed69f4f15cedc93b503..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 793 zcmV+!1LpjRP)a8r-1c`3+>owstQ*9I-_ekzW(ohmYMY`{P6ZeF5{f*M765oC3mgQisOM;QQbX@ggAS2KgDM2gcqZA9XdZ>iF!~Vl<60PAsYul3 zdO@$k{dkx0EmyGNDt9}0CpW25-SK_A4lC2`W(<=`JkE57@PX&*6@@GQDqw`DDAt^o zq{Ey(Out`(COaJJ>@YJM^^2KrxFq*RzAhRU<&M8e2tg%w*9#|$0B%$xx&b3n#4 zkf!uOYO^O28&82>e-b(E7tlIZg-q>P1XbD?eadJSW`T2LeMI1S3A7{YkWT@r!zKv( zO-N}zjVBW|c%-j32i0RzNc%F;I4prs$%aP>#pqIKVL?pfIIhp@vQS;GLtGb-&KrG^L94A_pU%f6M3**AM

gJ6i>thi*In%G< z11qR?nZ<5fV+Cs0?EF;*rjKIYInQ$Ka$^8kIXfoF@SaV-aWlw~zZ}ip35JN+^=tnJ XxNVQ!&Csrn00000NkvXXu0mjfj)-I{ diff --git a/images/icons/user_gray.png b/images/icons/user_gray.png deleted file mode 100755 index 8fd539e9cb04111e950ac9b0cce82676f12f67d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 706 zcmV;z0zLhSP)%zf?XuhjnHwp)vDVV-Nit=+l<1e_j@md!Ei+v5AT8J`SE{vdFuew{g2kYyx=h3 z4xieMNJl*eP72^_-v!pJyZ=`JAM1)mw9ObhdlWZSJ22`#g1!y`+|mPJoz{^J0U@Ip zqqZgtkkAd&ArfvtoH-0%$6gp(_f$3noIl=(%W5IUuV^sBo`C&WBd!{oVQoJMrfnxi z`p#^x2^duFTU~s97sdAz`2P9<<{$Or>$7WEm>ok@v;XI(hZnch1SA}-?@Du%ST1C- z@^Ol2n(j;UQ@G<16>3&!ll!(xrPAzppcCc7J*<9tO11JKgUNwTh{fV3qSNQLtqV{p zl?^JDic_oANTpKf>FL455JRQWXy~0zr{ni=;uWj`kl?0ZFnEhM@}^`m39HqLY&MHb zCIgengyG>~csw3-cXwB0GT9)3Y_0-G@Dj_iNT<^<7z{8Pjj-G8$mMd#=ku^wEYNDT zu-R;gMx$`M-4(f9-d6=I3^o5=o*hIu90td6)Z}nDKqjN(GYkW-*9(`+1;5{qVlIle z{VnAxU@_8CDZRK(4T(g8f=DH5<}3B~_974nARdoX*pHVS=7PdX74Z47KQtd|`sH*w zq1WrFkyk7hqy71*_%rE`uC6XDL`7wi;nuvu(zLIhbZjEe_=@yhBIB183I%xaA+i=F o63H90*)04vGrr7ApigX07*qoM6N<$f`O4mr~m)} diff --git a/images/icons/user_green.png b/images/icons/user_green.png deleted file mode 100755 index 30383c2de517fd22945a87b0528d2821ec4d49ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 722 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�@!J`~f>&FUYY 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

v96wpbY&@dTUt%@Cg<-kN@QVAkMRFEte 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 XHe4|Dt4X diff --git a/images/icons/vcard_add.png b/images/icons/vcard_add.png deleted file mode 100755 index 2a68453811f26444e2d04da5713c9c757dc999c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 661 zcmV;G0&4wR5;6} zlgmp~VHCiBGxv_KMl&C2qkCXb}Wq zf!ZRmAV?dcl3`5C9`u^&j*R%u>z&8;KPY{YWGtbfuK$a=ExUB}iH8 zEPs4~N^jt-Zswr3g){Ci_UZ~2!Wmr0Ma#WbhXyeU7+*w?FH!AkTK)!xHA(%V`3nWCtofZB~;xy1Wp zclf$8!*6>HJGqJf=sC(o!*&OC`_`CUEJs$9bD*XGd(Ea)E&#^XnS(ZgInMBG4q?C+}4skYc8sQWiIn=|m_d^&hoje?QvJHqv zqa+duDl02#Y;2^Yq$CGiSe?h^a1&_01i;l(w|V?-kc=Ef7eagphr`W62s%1C9HCH1 z#bU9%U$?rx%&ZwAVonn5xl8}}1&XvnG^ef{ySYZA*K@tzyT7lq^#o0|ZG4^&6PlhR v_HFfsW4GsQ^m_V%%Rnix4h+5;FoS;pMlVc!y2FYE00000NkvXXu0mjf;fN;k diff --git a/images/icons/vcard_delete.png b/images/icons/vcard_delete.png deleted file mode 100755 index b194b971b398c3d81cdb3daefe3fc4c5ba959eaa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 651 zcmV;60(AX}P)#u+p-Y`QM29X# z5S}9c5Y@7+BwJFTy>-o9T}AP^yYJ2Wb+BDs>L55U%nZzY=R3oUp|$2H;^T;NWB|3Y zvN8%>1@Jr%tu>zKRj7#kWB=+iBb`pWEiEl3z`=c#{QudKpGYJ`X|2twswy7FgrdF8 z#`pJVX9r(v568pj8EW`JBobkCauYjW#NI7p=N(?$j36SWI@q=E+auicCzdRW#jK4U zn*+dc940Q+;(68Ou>eE_RSE!{whLVB?clOsG4uH=3DYbmPEAc!EN^gda1TI4_KIDP zkC~GwwLwEu6S3j|xm+F^_5h;MXt{fdbp?Y>Yk}7ASzf9>a=(hy1pTz{ESD4GPbToi zUn8p)5(v_D?Jm;XyU(DbevA3_0A4V_u{J;Xtvroh7N{lr_9?AvF}iMyP#r$U?%X8F zndca7OBl&yQg?TESIlSIHibf=OnLrJl!5Cb)c$-2%hS*tU`?GN_F-Y4fn`}_G8sal z5S^W!)Ya9M0cF*qracTp_x3Mv`~+%q9VH^kcs$-CBJ}t78?&>sI+aRQUSD$%`^y{Z zU)`p#`x_hB-ZF6;1FmtHZ=4?P822~UkDUs+O8HW3XI&OoO>y%2zH!)ho*6zpx|2)a lGQ~I}re4d+k;eSjU9UZ+4 z90QP2;y4ac$|Wv@_#^)I2TCfH$_D}g6<{%&x%_W&E|0}xLUSBPb-Uf%j0$Yy8`JSu zIJqCV%4?_y)^fz#Pbd`P^79OaX=7w<3^T{$(;h0T?8^6sNPyezP`j= zwjWIh@oP9Qd7EC1rcL85DIsd_W@^d=?=OJ*&@}nP1cmEP;0x{~GgM8_i-!vgGKoIQ zgH=4y>X`a$v%;^l>PHd)EBy@BisRqBhpB-cbj7B)WEI}h$^`~%ie~AWEJgZDDXY{m zXHAOb1ZuV$&E1Qy>LAwWBXp0#$cJ8}qm%SCE&!ZA+%SI&!!WQc3u`h#f!T>~QwwJD z4lX^9+q;1x=L>;DHyCK|#x)0!NF<0xqYMuZlQ-P2qCDiuU8_Gh+~hpQQ;Y9Yg04!_ZE%SemW!igKchx4WJa+_9IUqH2;IpT3(}`$+Aj z_Rhbl@sAabH~F)5Rh8PVnjntbie%Fhr;c9#IQTC){{(bKa?t*>JG%e?002ovPDHLk FV1hfYVB7!z diff --git a/images/icons/vector.png b/images/icons/vector.png deleted file mode 100755 index a1291c2dfad75b289f88ab762a3a32ccb436c1ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 481 zcmV<70UrK|P)SXcnW4?r|Fc?Kd3cm$;%kZi#G`Sa_VnwmC}YZ26Y zhXbnt^XAQKXm4+SUQ}H6r(?sz`|0x@O--EjU}EI72kk(5e$=!F(*t|%| zOO`#}*s$)|C0u^?YPrGY(Rf4Gt^S&sOU+enjCclWzS^+v`E5dh=Tv=F*rDQzDn?3c zT=(o=$L8ms2^j#wwxyStFa(R1K0Y&H$BX|!zZw%`2!=rX%m*7M?R@p$v*kt(Sq6Bw z+-#h<SXcnW4?r|Fc?Kd3cm$;%kZi#G`Sa_VnwmC}YZ26Y zhXbnt^XAQKXm4+SUQ}H6r(?sz`|0x@O--EjU}EI72kk(5e$=!F(*t|%| zOO`#}*s$)|C0u^?YPrGY(Rf4Gt^S&sOU+enjCclWzS^+v`E7KK`BNfm@}@+5O6&9g zAKBvY$)m!m&7tCoDn?3cT=(o=$L8msku_)Z2R1aWPW->+%GCcCp6&YIzdP%Hc)#v{ z^K7YJ3?~*XeSBuZju-!del>=P#kRYA-*|b#|Bcrs{Re@bJ*ofu_oM?2ko=BeK>W-H z8z=32_20AQMh;BOr`quUwkvb~BZEzsrh*K>3?%QCn~f89y!;>7dus_y%rZy%d-txS z|LwaHz?$24Cg64fFlxNpH$DHKxA@UB$BHX#ATglAmf#+Z|Gm3Xz&3+u5FaSsgJA$L zYJ@6RJ^fR$>hXWu(o2CbaiHQ3ApQh$Hk9rFi30!(_NEBmXg+EH00000)+jEP)SXcnW4?r|Fc?Kd3cm$;%kZi#G`Sa_VnwmC}YZ26Y zhXbnt^XAQKXm4+SUQ}H6r(?sz`|0x@O--EjU}EI72kk(5e$=!F(*t|%| zOO`#}*s$)|C0u^?YPrGY(Rf4Gt^S&sOU+enjCclWzS^+v`E7KKMKBsqYa+IO%4@TR54OoCBdg;l!e)kIzil@!~(wuf{O3oi5CGzX3J>pXB@hf4SiQ|80u@Uw1kD2a4arFd%;B zgN>7RzWVRkaw7*O26Fblv+MpNgZK3k|3Tsy26(sJY@E2`<^RCmTT9?BaAkh{Wp48S z|3FPY${7B?1LB7n%>RMnPcRGsMvZs-rsx0j7C(CCSaF37Bz8Dls^Mgc>hEXeivM3# zvi`rD!uWr$FUy}DuFO>!1^}Z*sB+cQKNYJU|F(9002ovPDHLkV1gG5LN)*Z diff --git a/images/icons/wand.png b/images/icons/wand.png deleted file mode 100755 index 44ccbf812879c42cb1f9587d865bcfc337ce6361..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 570 zcmV-A0>%A_P)hUn2-Navsqo?5A8 zh}}V^=%7@_%C;=H{tGpIj5CMu*>5J=i;m^t2QTySd)}9aAppozC}++wDz`eOViU-dbRRoz=JsVlZk>N%^azhi%=xTCt9`LQjtqNFW~e|R=r9= z`@I3J^#z@aD5yBuq2DLQO#|4uFW6R5kzPZ+h&6Af&5}POarL&lA~3t5R1i7uh*ffDw@qEs=HBW ze?CI~MkvG6H-MF7r{Yv4kw_q&PNP^XqFgTHXlH@RpLO}3aV{T{Ez=8lo;PHV$Ads1 zfOtF(s5%5V>3qE|&{lueV1Y1j%GF zXt&#NI-LlGLPN>_18TJzN~Mxf*f6pY5Dteo^|P&3>(H{!KTr&_wGRQWb^rhX07*qo IM6N<$g7V1&P5=M^ diff --git a/images/icons/weather_clouds.png b/images/icons/weather_clouds.png deleted file mode 100755 index 3f73eaa1445abf43c729c134b24e3a308b61a6a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 581 zcmV-L0=oT)P)51y3fE zx%w@DD2lfa4>~OCGd7Nm`OJhY_mM~>Zhr}oW%;_>?Rs0S*4L#qhyF>!#}6{}`ym$d z3Buv0; zoaA!3@5yAc6buI6aLmp%8cvFa6)*`v ziL2Gh4c=@vXTXaSngz8JkH?=c0QGwP-E1~<4=IuM)DpQMAbqXrbn2ezx(?O?e*s`O z?^U&04K$n0HG?_ja+xm{i>-7zeF}v_$5<>TF=>%V>`OVZD3%CgcZ}Xt#Wg= zUCanah`Li2Ew%ac_+ze_E?0efU+V~mRRp_uc%SF+e!k!Da}GxaK(>>T4DI=W17hEb zu#d!kJhZ_Kg#K8IP*XU*AP=RXAqbZ8^O3bd!-`Yik7OY#iXX4v$>~@UAY_yh#iTjP;@L2+%MCJ7r@Gr-(5aIBgd$2Y2*5kXT|8YNXTYnvze#aoh;qkzSx~sZp6HHb!| z&}cLsiGbhl-|zK$N8D~V?{qqO^0GX3yWMNGTC--eIcqc;1A4taq}6JhYPH&TkcSOXkRtuF%1?6%Xf*>H5%fVnUI3xklXq2s1tLXK5Xt&#_*Xt-03dra4NTpIp zBoZhVi_q)!r#hXE(`vOVbAUh~(Cl`*sMTt7LeUvSID)|-#MY3>WDtwRpwVc!Ie<8< zrg&z(600PURQ)9u2MUhk;C8!_&1RuitH*Nyr_;$2A?cMslF8((I&qRtry*_y;(TVV z2u!6?%{#DKt;=S!nYGz$c4g1-OHe=x}~H^(oS?qTl%zP(Xk+PIAm zi7Sv2N&-eHdh2kohT|P}R-N2O+Yj-6<1!Wk_Mg+|M4OL3ZP3__(-;ePXX44`y@g`Q zuS{Zxzck!`eFt0X)OZk~m@@;0Jau6^O0Dj`x`B6LDzZo@2@tEP-iD~7eo&@5i}b1=~CRSYnKceL_LH+CwnM`4yJ49kFhue97LB6 z_K?9#hng$~K`Gt*7nH_0PE<*@PCxEP->Gh}a5DvZ@bOOX?)&t;cXtx!9NlEZ&<)3} z>lQkl&f_2mb^%X(-$#JYfKT;${d9hx^sf@y?Y1DlD;A5}>2w+qLeO|TM!K$l1CbYv zM&oqBLATpo1JXWV2e4Wym2M}KNn}}8C?MwLa(TPo@9)C)MFCLW&*$^6Gnovclp@db zkYN~TW>xO?6B;iCv@h#RTlL^Y@a$^28a*VLCJsb}IoNX+I9LEWT6h#Ta7(sb zMx&7sIEnNC1daxSL0HPn%~ya7cr+{FJ3s+E1e`!)4;PNHrk%Zs$w*-oVG&)AW5$^> z@i``hDW1zPC0ucA^76~UCXSTw{P^d}Rz6X61K!$PO;j&z(%QHiubvx0>%pCP_1A^p zDnQ=6^bY=#BM#~x&)yTtWjA2dCtSuJqcmVp0;9xdasUzfD7y}QrGMDMk+-mS^yA+8 za$G&Ph*nr$QVk=}3M)&hc^PQ;*Al8_5^a4Wr2_fwJo(zI{9j+=Zxg9)Ryp#|fB*mh M07*qoM6N<$f`IP5ud|Np1|AOBzfzx2!k2P6f@r4BdjzqS>RTgk>`sn)j`siZP2nD{M|4%RQ;YX*@ nOhCtIA&IFQT>*yuM8zfmxfCmlqf70K00000NkvXXu0mjfD8iim diff --git a/images/icons/weather_sun.png b/images/icons/weather_sun.png deleted file mode 100755 index 0156c266e4e1fbcd1263fab2c2dd1f3712553d14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 623 zcmV-#0+9WQP)Wtv3@TMo36t?!us(ut2(qE`#u;Y2=pT zq@2~2T~yXyeA(Qqy5;+9o4@n>4e8r+MnSPzjxHXahjaKm&-eRqP6dF9|A~@^;+?rt z=H0jE_T4vTwd@82LFU{PN7lpd$oktP$3Gho==lu{2>(S8IKK0m@1#{_mk%-f(Z z+<+0WLyL4{ZOnvyEl7}LBImWjh~I^nZG{LlL-;RKT!Im`W9MTdQZ5xqr;6nfwX(

&09}?3!+0xOT@w2!VY%$ zj|Qoisx?Xewm&q%SbjiFY^0(I!gmV#q77T0t|0EJMfe#*$tA9gs83{GdZFA;x{o96 zB^%K$7%@AxKer&}ti|FWs}2pYzTg0Ry6;OQZ&K!w#ON`Q%*5Js144tWhd>1Tnd7f7 zk-!t=?~tr%T0tsJ(--<#x2)&;s)i5r7k+}jpgM|^Wqqb{;s;8N-ZpQB0Ez$r002ov JPDHLkV1fyHAhiGh diff --git a/images/icons/webcam.png b/images/icons/webcam.png deleted file mode 100755 index af71c30610862c76f07e948d8c28433c7d338f9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 728 zcmV;}0w?{6P) zQ%h@FVGuo6)Fi$Fi7(KrG!JOdowP}dr3o$AodmltUGz6(S=wE9-Q^d!Dj~QG(v4`1 zSW!^uQoNPKh>sZK`_-AR7!stLUKs9tmpNz7oNul)o6T_lsaC79N~H=-r_;cAJoZsw zG#X{P-R@bd)jIL}{lD+mOZN$`uCAU*l60ieXoBfA$ol%a zjdtbzgG~&F!*3}MlgrwCKJTKXQn)M6&7NqrTGVPakTRFqY*vT_sZ{D?p-}iNMj%Pw zwzs#z9>}t+*zI=cbUIvIT!`D@1u7PcY@V{VwuX(34Md~SPXzr-z{|q`r_%|G#Ujoe zHk<7(ce~xA9)b<7tX~vT z$e)FfZ+`X4_uKyq#wJHC;J3lH{lhQkUc~Wid;*pnjhM12xe-bPByd^xuQ9zgeM^Mm z*tc)|P}LtTnHXr@Gkmmbkg^O2bqyhO>LP|qjIwW2@Di+4EuKm~&tOO2!N3o{128Hl z9v%fgerM0C#)7P|PMvxr*!Gf?eGA8f{OT6fS`9l>LQCg)p=~c$Zr|AT_0+_?F*JJk zlapOT2Q(wWx-LMq(TxXxLn+U;!LV)MhNp~ommdh+fo8T*&g-yQbbG&ze&=>tC(Ar=&^1xlA;Jc(6 zcCi_xs8k}-S&#ONOHm%e@#nGC7F++8C~r29Or!_{(QGQEG)+O^J1BCPmgM4JAzC8I z`jS9bO>|}Jq_#$IRzp0d34>)&3L%7MN)eTv!0B!^nn}f4z2*vFE@jv3dn zG>H)u>FR7_d2JcsjvfZ$vkP~xik@T^(_N)nx=tqJV+tQjQ`owJ83bf`zX6Ear*=Mhzn5QUuXE|v zR33Qyi8G!0{H2r##d#6R6YmYbZz4NTssT;cXiGb6lxO+k@{ba@2D~*hKDY6N;Bkh> xhhCRLejsJkAIT{5sICHcfU`5>bKmUb{{y)0nR3PMMxX!y002ovPDHLkV1nl+t-}BS diff --git a/images/icons/world_link.png b/images/icons/world_link.png deleted file mode 100755 index b8edc1265db4bf69814875d1c10b8761f7009e23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 957 zcmV;u148_XP)(^b;|pVbz=yzjpaJj$ zhrpuriKefui_0DvN;1Ymq&%nwWg*IrK!Xz^eJWuq3u2H~0ra?EC@ge%+`A>6mV z9{TYo{=G6 zt@5m|4G+Q2zKv;Ch@O;`PfWArmB5n3gvMsxV&Iu>97{a!2kL74wd@!f_AP^O%_&ND zm}1c*+F;TcH^{p$P_|akvD5o7vmT>HCkP;z;;&+8tDBI;koi9eX`W!oH4`pYaHlFZwV;$>vvfQTw zM-`m&R_SPIBa^FUasC0GCCh%{h`$~db`z&-lFX#%(f>H6JD6Z(sIW`RKE+xOL+?+uQ%q z){?+F%=6pqEH{6=NzusC-*<`PZYiLCGyKD}Z8^V8ul-K=AV@SE1t4~D2*b1(9UUc= zN-;Dv#Ngl{rd7e$ZUPXC##BFmV>$26ZQi?6Po#@{4gllsPbku3Vq${Y+FAf~T}OJb zGWEz9{(zcvI&CUaN&p7GcqMG4&7ULx##68M4k(F4l7Q+Xm&>uSv4N&(w6?a=)YOC{ zoYLN-J?7@-9xGBx007$C+kK7w_2Z$(k&l}jo2#`dO;J#Ipsbc$pS#^Dy3Q&nSeE5x fGMT)t>sS8=`naU3reLNz00000NkvXXu0mjf)bGN+ diff --git a/images/icons/wrench.gif b/images/icons/wrench.gif deleted file mode 100644 index a64f202074e5d892fb9344cff9649fdb0b6e18c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 571 zcmZ?wbhEHb6krfwc$Ub}+1a^f&6=K`p2j8juUxru;>3w}@7_(HKK=Odp6uGSYwphHj~+dG`0(NC!>`sId%gC^s~xA`Za(p*Y1#ctmo9nN zUOamA==t;K3uoS$v;A59;``I4O)H*rZ^eOETeohVGG)r%3-7zvJYKr*<)n>I4jnqw zzVhMb6K|_$U)r;0&zi%p=Inf)KmB%ldwXE>)mht~&Di#=V&1)-XWy+}y?WKERfi8B z-f`yLl+90{KYw1o=+3UQ?~WZicK!PG6)RR0&%V>M?$PoCFXzskJA23TmgNuc-o3kY z|I6)X-d4`PTQcX~%+74n{n?)L?`O}Redf%Wo|QM|&!7MQ|9=LW0mYvzj0_Bk3_2hiKykvrKBFPA zskxbj(KWWEtBECnk4>Sw%UsYVoO4o3B%cgpViXh8Om+`x3r9u=hDk!4EUdcxnnC_u zs(~sTaUAxR!3?Y|T>2*QlFAGWhU^EMx#eQGopqSlCYkwix$uZH+fEYWweyS+5b;y% z4h^$Xw~iJy4VmQa#iL=Y=c6^#K--O1t>wT3%`+1j16)cZ0s^jb z4`0v}DG1te)wmeb(>p90leRz?_mO+^JKy=v&2<29Od6?F%9%(c8los#f*@G`-%W&* z$)uBj2i@u-@SgX}gtyWPe6d*|w6h%R? zScK2#Yn%$sum0cy>90DmY*i{1XqpClEtktsRTZ)lCUe z<FogV^*tm>8*AlX za4oiR!&85LrobG57qUHUX#{>Vz(RHpB5|@>9O6N$jqB8>%($0wxE5R3)b>Y~xtCo$ zCgEk&A?_#IxHdN)9tqre^o{ho4{?hmPuf@^@I3-wncaRd%|~O3xbrKY=&TiwPYkJroM{;WUQTuMY8vpg}f4o)2%U3C;eEDoiEh?94d(rV57VIF#8VqzW$HrDC|#U`x@QDbgi zVl)t9GGz&YY#D?gc%>hISA+_EBpnXt#pnC`p6@xw0$8TCbULjhlgVx(kuc)%xbgqq zR5+DNDFRN0!y)7Gm}oT0i39}h4h928qY?Rho^UvPGJ#kuW|-Amtrn`Pmd&+bFo@sp z$LI4IQw7BG?|#2ewOS<<3VjL$0=lMY^m;wqZujv5kx1l%Sl;V&Iy4#$ip3&@LV2!7vhhN=PCz%^9v24`qb(+m4W?!q-&~=?ssf5GfnAmJKV;3bvpDm0(NhahZ=&^sqo6Odj6>)Dq_3p~4~ zvb`d3Mydwjt&Df^hVmLtI2x=U&h9(JVYX-!y~z3zi;1>=LY;o(bL$(Yf$lf)dMf0-u^0HrpTG Wk@)HE*94aU0000m+BBgry{~j2fHLegbHP( zrgXNbr0}2;^nywdjLjZe?uxtrd3D(pZH@fFFc0{BW_~jxoO1w7-VX;6vK@ROA$$R6 zEmo;Ht-Mj|>5jUy{bQ^V5@53LRI8AgLpUm|m+15sqcz@QtVSo|oz7ArM8?pIn+>gN z0b=4_b5O|4A*;Q+vc9Vqr~%3V155*NV~@gTz}KSUiKB-uJzjMZ>5%Q#n24H!V{ zTY(LLAE*NAHZ}C#wnj%Bw5OFIkRhkkAW#kDC3j9Wm0YXRaXlyyp>#mVfYG)eC;@ab zDb=T-BCAY4LI(Z@GOTr2V_A{pRwSmz+8Be>CjAw(=gnbVWAeguvZa93JmL(EDxv1m z0OP4q=fpAK1Mq!C2`OkEn37o;m#wF#(t(8Pu#S?2f#x<~4EO{@fmm`p9veD6RZ_jp z@Au4};q&`XuKEYgIiB4((kgxOs#YdqJw0fY>9^K_agEu5+$#k;w#%I2N>n_?)YIqu z`tq&#_^p?-%K*U0^}|7+9U(&k0?s;=r=uCZ%)H9_edH8wK}gB(nUB1FFk+2Ol%BXV zHoFY`D~2x|2m%7v+TE=2L@ zAc44q=tejYU5HLZGooZ=NXsV%)bU*sTokj@jZSo^9&w{ke7#VNQ*1zG!rIRk_@ zCqOr;g6B6CM1oPv1(~U4k@Gd+5tN0(j@GA*K*busv3Lb0UyXuowiRkTRZ#85JN!eC z_8ZVW>+upx5C#N|BTv2dK_EW@%(@F6yu1sZv>T3gm&*mIkvej1R4=RyYw#mS zx}c)#2z<)=VQ1|=ux>5PwjVE+J!Q84EQyG-j9SFYV*6AQj$Gb(7!KJE!k5iQ@O3K$ z@0NQZ)>b7&TaFd~Ciolk*Q(7cL+9cB`Y;G@rr`tk5Hdjv+))zSdlF#gI!>6`zB<@i zaKYP!9!Pl&5VMjydlq1x&}37{RQY+SSBXX-w?kCLKK%bXFYU6{?d+nH00000NkvXX Hu0mjfTSP*+ diff --git a/images/icons/zoom_out.png b/images/icons/zoom_out.png deleted file mode 100755 index 07bf98a79cfea526e250703356dbefdb6b80d166..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 708 zcmV;#0z3VQP)TNkCP1&*^7LC~A?iZQEu_hKZoQoXI zA7tfTv}|~Fb8b^XuP>qvDk=)P)vYKtT12;}bKn-mwHWl`1Bb)&{XXC4IY$Nnvj5@N zfekg1Y}gcI!)Cq|u?lR+A{2&=d~S$}&0ei1|7pO6jkZ$6%&{R8TNpk>=dV#j&aWqO zgE~4pNU_-giktFkY-J5_XDlv`7+j?n3mXtxgadILp+c<9cr~t!x1LM6m69Z~V#pLL z22Cs~BoIdtZHTjo7Q|_U0a2OmSF=gCGFB$RVZIP(pixmBqE!^15yd!#9Z{Wh)zB%o zikBFa!WJPvMB(noe(U;k1e~Y|r$}@wh*Ymykd6>E3t69z5DT&Jq-fSG-dPdU{SG;i zbSb3<`RfKgJD|lQC`6(Cdut1PbDV&$M=Y?U)x)A(0iQN+gAeOBg2Z6fr$_Is!%M70 z=n*z7{*s%3rO7yazIO)}qa&~o@WZ=R>!b#mOSR zlCR8M*iRy2j7!PmWiiegA>Og~W1?FLk0*NI^}`$RW7f|N^pTGbA z{`>#y_y2!D#^3*cfGUA%e*ORX^Z!4f^#A`qe*9;^3lx8{faP^SB*;z%)>Z}8z7(bj zA`_ORC;6!xbQ+o7t(d1DY;4)P;5>Vdh1jvyLkD?GX7@WJtSsW> zKv7C}dYdlUEA>7SS9s;{nO6{>Gx7i#V7?&%a|W@8rZ6Y8JDCd4en jCOSuS{)G997B5-4Z25|nt5&aByKeo4jhhxLGFSruh8}r< diff --git a/images/ui/checked_box.gif b/images/ui/checked_box.gif deleted file mode 100644 index 812ef262fbb2dc624a9223cd3614de77aca8f36d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 928 zcmZ?wbhEHb6krfw_%6fX>FGIP!h~<%zMVRC>cN8tFJHcFZ*QMHd-nC~*Dqhb{N>9R zUteDr7niqh-xe1apE+}8*|KGIb#;IL{*8@|t*NQmym@nXcXv)sj=Q`2(W6HL0s@?z zoES#IXb23E5K#Qd!pOiN!=M9lFDOqiaMUtba>#gWSm40HA*|I>!1&OynMpoph63Xu z=MFxzh%F}?lO0*4#WY@2Y)ok3W!I~c@kn59VAJB2x*?FDaD1u^mq9|nfoG14EX+9u z4j-Pi&XSR0xZ$wi#lfYf{5cB(K0Iq!DkhfW5b*WkRbFWsi9It5oDaA1ajP+KO>}l( Gum%7Fc4V6X diff --git a/images/ui/circle-cutout.gif b/images/ui/circle-cutout.gif deleted file mode 100644 index 3aa1962479a4c8abc232fa83495cd300eae1f37a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68 zcmZ?wbhEHb6krfwXkcXc4+e@qSr{1@7#VaJfB+=Jz$D$$zw-21#^i33HBq9=st&(v RoZS)oc(UcIQ(CMH)&TPX7ybYM diff --git a/images/ui/down-arrow.gif b/images/ui/down-arrow.gif deleted file mode 100644 index 88460236558c771ce3e5fd774ed9702c3f63809b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 189 zcmZ?wbhEHbTwB_Y(FMd!)zzM! zp5o%-XJ==$w6y>K{{R30A^8LW000gEEC2ui01N;O000CV(8)=wy*O)}f)9p80OWuj QfUsZ)qi9XB%~k{eJ63=&f&c&j diff --git a/images/ui/loading.gif b/images/ui/loading.gif deleted file mode 100644 index 7e7d48d27266218730de61df4ae546f496ea04d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1737 zcmYk+e@v5i9>DRhrS`X_g{Li0R!U)|(o#x`Pk)y_ZFyP>mLEPcKBZpA>*89 z-1p&m;yETyJZCPt+nBf8j8i7CS>u=}b80-}%(gSTows<)vh0>+*%o8GWjRl8^}^@R zZ@!=8mG3+G23v5OJuU$fa1Ve753U0MKK=B>p+n=b*m|$m5(uD~OwX}n@b>M~ufI-K zSC{K_YLiKeqI!>~A(h&A?%Ye|(*PdvoHMc z!-bDOKK|8Lxi7w$zj5QwmoLA%xOn)^orTXnJN45~%b$P#_O4y=civ&<=MS{Cxx2cs zzP`}lV8rKJ=W>}YUHaqrc+_mxef#ZuwY8N84rF_JaD$;rr7D@3*&B&?ii*Vh_H7#; z?r3aWd-dwf_3MB7`s=f2&;EYTp2Wd}J70NaPj`1S!#ooXJ3}G6Mx%V=4N4*riA4O9 zC-<}21xJoNr`4(uL}IfU#>NJW#%dmqvweH7T3t#I{&c!~@80CYH~)1i|5N7ACgNj> zVfC|H#zxffRD2>m8Xq=p$s|WX<-gfL@bF^g17W0@*x<)Hn$1R2!K#NxhDZC4A_DG< zdjTXTDN0$jwvMKF<<+%Dh&rs4K={Oy`g&+JxlxkEDN@lWf*b|~!s035ZgNAmNIGZn zHo?_vkU8LNh8(eM&Wd>;w@^NZ_?(c(QOtS#0mzq>RM1Yn94DovYOT^_;oEqwe@vED z)^HmdRR$M-O4D(g`R8l+f!J~phm}XKS}B~$3!Mc|^@uhNC~4p-*(mI->#u%VONHAv zgro=&j@I^12H71)DKjPDR58#>hFUupfCGi>HupIkhc)XjEg&+eh+qqj!M}hO32%Y$ zUIa~wt}?ow6?h-o&5bR5hoinZru>A&wB3fjim*RUFoeA&by9K=(6c09t;z#gD}leu z1NnmDEu5%Z9mnet(BQm(I0wb(e6H+fjDX(AW_hC+N z{cRfOE3^02MQ``L>&@#5R_dnnx+a}U5~)lFX<%1yYf3k7N=3pHRuxJsakp=vu-!!x zTCmLZSi~Ht=)Otxv&p(vd@oHp0>L6^3{s3+1lCTzFe64C*|&NNp9w zV>S)5eGNv|$LtytwB7|fD5ROi*AQ+Cn)%m^8W*iDSv9)09O31S?3KpHiIMndLZy{9 z(SWbtkx(>-ip_E=;1bBa77I)8q@;|*Z7wGrRu_ArcSy;A#HKX#*od4jwG+mD)|{-c zbrHM5$i$olmMP~Sk3t!LiP@PgfaqY;Uny1ZS{7*`5DTfVc}6IpP~7Bz#>^Nmm$6w) z%ePLE@c)TduLM3$Z1UQ5dMSp`fWT}+;R@akfrpYQV?hFSXv(^~F%tE9>SImQbNt3eCRwb8{s zt`sW8{R-L@*?koDZLOOaLS*vpT~QmwYyVAlTwIuX&i_%Ow2&iKhho=z)cLmDmADsv z#nDy=E|cLXO`;YY84Lv6l$LfN%}#{G))=P=%wvI7wUKGSmj_^LwSE@y+o727DHDHj{+Ova}D|nZ|Xvdhj(~V>4N`;crtJ_m;>!Vy% bd^*T$D2?=cfBfL3i`er3I3Im{|C|2;hd?4_ diff --git a/images/ui/loading_startup.gif b/images/ui/loading_startup.gif deleted file mode 100644 index ec0cabadcd87a07f62e11d2089a332db75ce9e1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 439 zcmV;o0Z9HwNk%w1VT=GW0J8u9e}8|Wp`qQ~-NVDf_V)JW<>io&kcfzg%*@Q0nVGV( zvhMEg)YR0fs;axYyZ`_HA^8LV00000EC2ui0E_@K000F4@X1N5y*TU5yZ>M)j$~<` zXsWJk>%MR-&vb1|0I&vt@bJEy5S82Y9*#g^$Sf5vjKN?*i4K+$f^-3V6a)k>STG1a zw9{|6*?dw6iChjLQOE&wcFVKt&}yg9;r=w5ZXeNRujE%CxD|r%W8>7RQ@3o{a{c=C z&!0a}nl$P5?c0C;{Ap-t`2YVu11Ui9CkrD3g8+jLNE66T2392nmA)kzQ=T~MXne6@ cd@$vGw@Kz%jY^yTCg-GvB9SPMKn@0L0KKw0CIA2c diff --git a/images/ui/no_img/no_img_f.gif b/images/ui/no_img/no_img_f.gif deleted file mode 100644 index b14a5589fb6a4ecc3200c3618572be57be4cbe6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2662 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 WUJs48cF5~ub8EuqY^n$V;PNM-w~w6w diff --git a/images/ui/plain_box.gif b/images/ui/plain_box.gif deleted file mode 100644 index 1639f8a41ef74e831551fa008341aae2b01f4608..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100 zcmZ?wbhEHb6krfwSj5V(Y}vB<`ufkGKQ}csO_(s@|Ns9CV4(Pug^_`Ql|cu@1F253OVz34P%t<5) diff --git a/images/ui/prev_pointer.gif b/images/ui/prev_pointer.gif deleted file mode 100644 index 00918cf71f5a4619badaf3c2cd9c73026d757a3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 114 zcmV-&0FD1gNk%w1VF~~W0J9GO^YinDhKBt7{F9TDcNkJ8f8u&}V_=jX!0 z!rR;1v9Ynn#>RkvfdBvhA^8LW000jFEC2ui015yK000CZ@X1N5Ou_=@YEgmHO@|?h U)H0moBs5`50f<}?mK6a2JH*j8{Qv*} diff --git a/images/ui/right-arrow.gif b/images/ui/right-arrow.gif deleted file mode 100644 index bcecfec12646360d971e80d48873ad4be5997a17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 187 zcmZ?wbhEHb6#-e}DV-t-ii~_wL;_H8mG5Tv)Yg)!)B=moH!b z?Af#C=H>$j4&1zXGe1B7(4j-OZ{L3L;zdSAMpjnV+qZA8T)A@T(xtStwEzGAGhhJ4 zpDc_F43Z2wAQ_OI46GIpzKS@d&3o3G*wQ-hRTt|e>C+-c2a5O|R?eFcxRaB!ucweT cL#1g`XVUR#Rxy3mV+AK>DXFa2WMQxd0L*h#IsgCw diff --git a/images/ui/square_loading.gif b/images/ui/square_loading.gif deleted file mode 100644 index 61447df88d7a42d92ae805d850b58cf5f3f9d6d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 404 zcmZ?wbhEHb)Mnsj_{hNU|Nnmm28O1lCLpQ!Ps+I{HL)Z$MWH;iBts!FE3qOcKQTow zGcPTlLGdRG0~biue{Mh5kYH!W09PYD17=2`kPZ+tfDB|{GHU7LI6dv=jpolsxuoxf zeLmg#z^pAIa$%Z!?Y&w1mh+_RdR}iorT6Q|=AU*u7AP3`hyqOno6Lx8jO`JiF$(;N z$s1?29A8uOc}C*B?>#9qX3Rge(97AYKxYSg_SubVU#jqJVoVj0%8&R|+jq+E@}pTg zNkPZg!%SpCF%jf21E7g3XJtj-$$!MpCA_`zVP(&fD+^Za;#S?BYU=U)B{ znl)pM=^29__fs!F%>`72MCm{NZNrZvH8We6|001Mclvn@& diff --git a/images/ui/star.gif b/images/ui/star.gif deleted file mode 100644 index 349ac26e48fd0736fe18cde4d721b8a2e5a48d60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 354 zcmZ?wbhEHb6krfwxXQrr{9)k#&whrfE6mcDuGm`m`IVPj@zS54mYQWO{{MaV?Z+=? zubJ@w+fwuNMaBJ{sqJg+bC=KBc)~1W$>-N04_|!x`FU60@>6CRt7flV+Bmam_UiI& zN3UPGzRf;wh~e_YR%EYn{E^EPdtYw@X!Hm;V1!_5ZW;|Ns9P2m!^PEMO%%AQI#!2DW;KSp^o+(|@YuofaJs9+;RE;B*&csrOH6Wd%}{*( z`!_c;my4{DFk=U!u!4%a0E_WNV-^8#L)J;g3>9vIk`tvS81o6bu`#e}Yq9aMGO)R7 caxn0!IjQn8aLBnbGwZrY3kih>Ix<)T08kc=j{pDw diff --git a/images/ui/star_plain.gif b/images/ui/star_plain.gif deleted file mode 100644 index ff3198fb9497eab7dd2ab445248abf89b0b5ca39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 210 zcmZ?wbhEHb6krfwIKsei=JEeScmH2}`v2L-|3~iqzxnF_)ffK{-1-0L-T$Na|DSm9 z|JCRJ$L{~%ee?g_H~;tF`M>}6e;{BW8Yuo`0jt#kksv!6Sp5@J`cg8x&KJ*OX5i62 z+2Ltprj#cZaKF2~dHsaq8#2329Ihx@;lbF-DPX}WpyKj%${tf*CHCM0DuOP0O%5e` WE9D+^Ff20pDz?P&lo&T7gEastc2f8N diff --git a/images/ui/tick.gif b/images/ui/tick.gif deleted file mode 100644 index 9203c05c4a02bf9288d76378fbbad285b521684d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 207 zcmZ?wbhEHb6krfwI3mN~>FGIP!h~<%zMVRC>cN8tFJHcFZ*QMHd-nC~*Dqhb{N>9R zUteDr7niqh-xe1apE+}8*|KGIb#;IL{*8@|t*NQmym@nXcXv)sj=Q`2(W6HL0s@?z zoc{m+&j168KUo+V7-Sf9Kms5;8CZQ3)caC0XH6}db>7TV`(;jmjneH!w_>))+VCYZ zXRz?jcGz$rLBx+KC?UBaZps|C1ZNA?ZKn>m2}$SZcJm%eyO$$#kkM^2XOYmwP!0xb E03Iz^V*mgE diff --git a/index.cgi b/index.cgi deleted file mode 100755 index c95d4a8547..0000000000 --- a/index.cgi +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/python -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 -try: - - import sys, os, cgi - - sys.path.append(os.path.join(os.path.dirname(__file__), 'cgi-bin')) - - import webnotes - import webnotes.defs - - webnotes.form = cgi.FieldStorage() - for each in webnotes.form.keys(): - webnotes.form_dict[each] = webnotes.form.getvalue(each) - if webnotes.form.getvalue('cmd'): - # AJAX Call - import webnotes.handler - else: - # Page Call - import webnotes.auth - import webnotes.widgets.page_body - - webnotes.auth.HTTPRequest() - - print "Content-Type: text/html" - - # print cookies, if there ar additional cookies defined during the request, add them here - if webnotes.cookies or webnotes.add_cookies: - for c in webnotes.add_cookies.keys(): - webnotes.cookies[c] = webnotes.add_cookies[c] - - print webnotes.cookies - - print - print webnotes.widgets.page_body.get() - -except Exception, e: - d = {'exc':getTraceback()} - import json - print "Content-Type: text/html" - print - print json.dumps(d) - diff --git a/js/app.js b/js/legacy/app.js similarity index 85% rename from js/app.js rename to js/legacy/app.js index 641554aca7..a86334dc70 100644 --- a/js/app.js +++ b/js/legacy/app.js @@ -7,12 +7,6 @@ var start_sid = null; function startup() { - //initialize our DHTML history - dhtmlHistory.initialize(); - - //subscribe to DHTML history change events - dhtmlHistory.addListener(historyChange); - // save the sid (so that we know if it changes mid-session) start_sid = get_cookie('sid'); @@ -68,7 +62,8 @@ function startup() { } var callback = function(r,rt) { - if(r.exc) msgprint(r.ext); + if(wn.sb) wn.sb.hide(); + if(r.exc) msgprint(r.exc); setup_globals(r); setup_history(); @@ -100,14 +95,15 @@ function startup() { loadpage(home_page); } } - if(keys(_startup_data).length && _startup_data.docs) { + if(_startup_data && keys(_startup_data).length && _startup_data.docs) { LocalDB.sync(_startup_data.docs); callback(_startup_data, ''); // for debug if(_startup_data.server_messages) msgprint(_startup_data.server_messages); } else { - $c('startup',{},callback,null,1); + if($i('startup_div')) + $c('startup',{},callback,null,1); } } @@ -134,7 +130,7 @@ function redirect_to_login() { if(login_file) window.location.href = login_file; else - window.location.href = 'index.cgi'; + window.location.href = 'index.html'; } // default print style @@ -176,6 +172,16 @@ function setup_calendar() { startup_list.push(setup_calendar); +// ie6 fixed pos fix +if(isIE6) { + var scroll_list = [] + window.onscroll = function() { + for(var i=0; i document.body.offsetHeight){ // all but Explorer Mac - yh = document.body.scrollHeight; - xh = document.body.scrollWidth; - } else { // works in Explorer 6 Strict, Mozilla (not FF) and Safari - yh = document.body.offsetHeight; - xh = document.body.offsetWidth; - } - r = [xh, yh]; - //alert( 'The height is ' + yh + ' and the width is ' + xh ); - return r; + return [$(document).height(), $(document).width()]; } // get scroll top diff --git a/js/utils/handler.js b/js/legacy/utils/handler.js similarity index 100% rename from js/utils/handler.js rename to js/legacy/utils/handler.js diff --git a/js/utils/json.js b/js/legacy/utils/json.js similarity index 100% rename from js/utils/json.js rename to js/legacy/utils/json.js diff --git a/js/utils/msgprint.js b/js/legacy/utils/msgprint.js similarity index 100% rename from js/utils/msgprint.js rename to js/legacy/utils/msgprint.js diff --git a/js/utils/printElement.js b/js/legacy/utils/printElement.js similarity index 100% rename from js/utils/printElement.js rename to js/legacy/utils/printElement.js diff --git a/js/utils/rsh.compressed.js b/js/legacy/utils/rsh.compressed.js similarity index 100% rename from js/utils/rsh.compressed.js rename to js/legacy/utils/rsh.compressed.js diff --git a/js/utils/shortcut.js b/js/legacy/utils/shortcut.js similarity index 100% rename from js/utils/shortcut.js rename to js/legacy/utils/shortcut.js diff --git a/js/webpage/about.js b/js/legacy/webpage/about.js similarity index 100% rename from js/webpage/about.js rename to js/legacy/webpage/about.js diff --git a/js/webpage/body.js b/js/legacy/webpage/body.js similarity index 100% rename from js/webpage/body.js rename to js/legacy/webpage/body.js diff --git a/js/webpage/docbrowser.js b/js/legacy/webpage/docbrowser.js similarity index 100% rename from js/webpage/docbrowser.js rename to js/legacy/webpage/docbrowser.js diff --git a/js/webpage/error_console.js b/js/legacy/webpage/error_console.js similarity index 100% rename from js/webpage/error_console.js rename to js/legacy/webpage/error_console.js diff --git a/js/legacy/webpage/freeze_page.js b/js/legacy/webpage/freeze_page.js new file mode 100644 index 0000000000..4a85486336 --- /dev/null +++ b/js/legacy/webpage/freeze_page.js @@ -0,0 +1,29 @@ +var fcount = 0; +var frozen = 0; +var dialog_message; +var dialog_back; + +function freeze(msg, do_freeze) { + // blur + if(!dialog_back) { + dialog_back = $a($i('body_div'), 'div', 'dialog_back'); + if(isIE) dialog_back.style['filter'] = 'alpha(opacity=60)'; + } + + $ds(dialog_back); + $y(dialog_back, {height: $(document).height() + 'px'}); + + fcount++; + frozen = 1; +} +function unfreeze() { + if(dialog_message) + $dh(dialog_message); + if(!fcount)return; // anything open? + fcount--; + if(!fcount) { + $dh(dialog_back); + show_selects(); + frozen = 0; + } +} diff --git a/js/webpage/history.js b/js/legacy/webpage/history.js similarity index 100% rename from js/webpage/history.js rename to js/legacy/webpage/history.js diff --git a/js/webpage/loaders.js b/js/legacy/webpage/loaders.js similarity index 100% rename from js/webpage/loaders.js rename to js/legacy/webpage/loaders.js diff --git a/js/webpage/page.js b/js/legacy/webpage/page.js similarity index 100% rename from js/webpage/page.js rename to js/legacy/webpage/page.js diff --git a/js/webpage/page_header.js b/js/legacy/webpage/page_header.js similarity index 100% rename from js/webpage/page_header.js rename to js/legacy/webpage/page_header.js diff --git a/js/webpage/search.js b/js/legacy/webpage/search.js similarity index 100% rename from js/webpage/search.js rename to js/legacy/webpage/search.js diff --git a/js/webpage/spinner.js b/js/legacy/webpage/spinner.js similarity index 100% rename from js/webpage/spinner.js rename to js/legacy/webpage/spinner.js diff --git a/js/webpage/uploader.js b/js/legacy/webpage/uploader.js similarity index 100% rename from js/webpage/uploader.js rename to js/legacy/webpage/uploader.js diff --git a/js/webpage/wntoolbar.js b/js/legacy/webpage/wntoolbar.js similarity index 100% rename from js/webpage/wntoolbar.js rename to js/legacy/webpage/wntoolbar.js diff --git a/js/widgets/autosuggest.js b/js/legacy/widgets/autosuggest.js similarity index 100% rename from js/widgets/autosuggest.js rename to js/legacy/widgets/autosuggest.js diff --git a/js/widgets/calendar.js b/js/legacy/widgets/calendar.js similarity index 100% rename from js/widgets/calendar.js rename to js/legacy/widgets/calendar.js diff --git a/js/widgets/dialog.js b/js/legacy/widgets/dialog.js similarity index 100% rename from js/widgets/dialog.js rename to js/legacy/widgets/dialog.js diff --git a/js/widgets/export_query.js b/js/legacy/widgets/export_query.js similarity index 100% rename from js/widgets/export_query.js rename to js/legacy/widgets/export_query.js diff --git a/js/widgets/form/attachments.js b/js/legacy/widgets/form/attachments.js similarity index 100% rename from js/widgets/form/attachments.js rename to js/legacy/widgets/form/attachments.js diff --git a/js/widgets/form/clientscriptAPI.js b/js/legacy/widgets/form/clientscriptAPI.js similarity index 100% rename from js/widgets/form/clientscriptAPI.js rename to js/legacy/widgets/form/clientscriptAPI.js diff --git a/js/widgets/form/email.js b/js/legacy/widgets/form/email.js similarity index 100% rename from js/widgets/form/email.js rename to js/legacy/widgets/form/email.js diff --git a/js/widgets/form/fields.js b/js/legacy/widgets/form/fields.js similarity index 100% rename from js/widgets/form/fields.js rename to js/legacy/widgets/form/fields.js diff --git a/js/widgets/form/form.js b/js/legacy/widgets/form/form.js similarity index 100% rename from js/widgets/form/form.js rename to js/legacy/widgets/form/form.js diff --git a/js/widgets/form/form_comments.js b/js/legacy/widgets/form/form_comments.js similarity index 100% rename from js/widgets/form/form_comments.js rename to js/legacy/widgets/form/form_comments.js diff --git a/js/widgets/form/form_container.js b/js/legacy/widgets/form/form_container.js similarity index 100% rename from js/widgets/form/form_container.js rename to js/legacy/widgets/form/form_container.js diff --git a/js/widgets/form/form_fields.js b/js/legacy/widgets/form/form_fields.js similarity index 100% rename from js/widgets/form/form_fields.js rename to js/legacy/widgets/form/form_fields.js diff --git a/js/widgets/form/form_grid.js b/js/legacy/widgets/form/form_grid.js similarity index 100% rename from js/widgets/form/form_grid.js rename to js/legacy/widgets/form/form_grid.js diff --git a/js/widgets/form/form_header.js b/js/legacy/widgets/form/form_header.js similarity index 100% rename from js/widgets/form/form_header.js rename to js/legacy/widgets/form/form_header.js diff --git a/js/widgets/form/grid.js b/js/legacy/widgets/form/grid.js similarity index 100% rename from js/widgets/form/grid.js rename to js/legacy/widgets/form/grid.js diff --git a/js/widgets/form/print_format.js b/js/legacy/widgets/form/print_format.js similarity index 100% rename from js/widgets/form/print_format.js rename to js/legacy/widgets/form/print_format.js diff --git a/js/widgets/layout.js b/js/legacy/widgets/layout.js similarity index 100% rename from js/widgets/layout.js rename to js/legacy/widgets/layout.js diff --git a/js/widgets/list_selector.js b/js/legacy/widgets/list_selector.js similarity index 100% rename from js/widgets/list_selector.js rename to js/legacy/widgets/list_selector.js diff --git a/js/widgets/listing.js b/js/legacy/widgets/listing.js similarity index 100% rename from js/widgets/listing.js rename to js/legacy/widgets/listing.js diff --git a/js/widgets/menu.js b/js/legacy/widgets/menu.js similarity index 100% rename from js/widgets/menu.js rename to js/legacy/widgets/menu.js diff --git a/js/widgets/print_query.js b/js/legacy/widgets/print_query.js similarity index 100% rename from js/widgets/print_query.js rename to js/legacy/widgets/print_query.js diff --git a/js/widgets/report_builder/bargraph.js b/js/legacy/widgets/report_builder/bargraph.js similarity index 100% rename from js/widgets/report_builder/bargraph.js rename to js/legacy/widgets/report_builder/bargraph.js diff --git a/js/widgets/report_builder/calculator.js b/js/legacy/widgets/report_builder/calculator.js similarity index 100% rename from js/widgets/report_builder/calculator.js rename to js/legacy/widgets/report_builder/calculator.js diff --git a/js/widgets/report_builder/datatable.js b/js/legacy/widgets/report_builder/datatable.js similarity index 100% rename from js/widgets/report_builder/datatable.js rename to js/legacy/widgets/report_builder/datatable.js diff --git a/js/widgets/report_builder/report_builder.js b/js/legacy/widgets/report_builder/report_builder.js similarity index 100% rename from js/widgets/report_builder/report_builder.js rename to js/legacy/widgets/report_builder/report_builder.js diff --git a/js/widgets/select.js b/js/legacy/widgets/select.js similarity index 100% rename from js/widgets/select.js rename to js/legacy/widgets/select.js diff --git a/js/widgets/tabbedpage.js b/js/legacy/widgets/tabbedpage.js similarity index 100% rename from js/widgets/tabbedpage.js rename to js/legacy/widgets/tabbedpage.js diff --git a/js/widgets/tags.js b/js/legacy/widgets/tags.js similarity index 100% rename from js/widgets/tags.js rename to js/legacy/widgets/tags.js diff --git a/js/widgets/tree.js b/js/legacy/widgets/tree.js similarity index 97% rename from js/widgets/tree.js rename to js/legacy/widgets/tree.js index 23966cd621..bdb92b6edf 100644 --- a/js/widgets/tree.js +++ b/js/legacy/widgets/tree.js @@ -9,8 +9,8 @@ function Tree(parent, width, do_animate) { this.is_root = 1; this.do_animate = do_animate; var me = this; - this.exp_img = 'images/icons/plus.gif'; - this.col_img = 'images/icons/minus.gif'; + this.exp_img = 'lib/images/icons/plus.gif'; + this.col_img = 'lib/images/icons/minus.gif'; this.body = $a(parent, 'div'); if(width)$w(this.body, width); @@ -102,7 +102,7 @@ function TreeNode(tree, parent, id, imagesrc, onclick, onexpand, opts, label) { $y(t2,{borderCollapse:'collapse'}); this.img_cell = $td(t2, 0, 0); $y(this.img_cell, {cursor:'pointer',verticalAlign:'middle',width:'20px'}); - if(!imagesrc) imagesrc = "images/icons/folder.gif"; + if(!imagesrc) imagesrc = "lib/images/icons/folder.gif"; this.usrimg = $a(this.img_cell, 'img'); this.usrimg.src = imagesrc; diff --git a/js/wn/modules.js b/js/legacy/wn/modules.js similarity index 100% rename from js/wn/modules.js rename to js/legacy/wn/modules.js diff --git a/js/wn/page_layout.js b/js/legacy/wn/page_layout.js similarity index 100% rename from js/wn/page_layout.js rename to js/legacy/wn/page_layout.js diff --git a/js/wn/widgets/dialog.js b/js/legacy/wn/widgets/dialog.js similarity index 98% rename from js/wn/widgets/dialog.js rename to js/legacy/wn/widgets/dialog.js index 955e6a4ff4..be5ca318ac 100644 --- a/js/wn/widgets/dialog.js +++ b/js/legacy/wn/widgets/dialog.js @@ -82,7 +82,7 @@ wn.widgets.Dialog = function(opts) { $y($td(t,0,1),{textAlign:'right'}); var img = $a($td(t,0,01),'img','',{cursor:'pointer'}); - img.src='images/icons/close.gif'; + img.src='lib/images/icons/close.gif'; this.title_text = $td(t,0,0); this.set_title(this.opts.title); diff --git a/js/wn/widgets/doc_column_view.js b/js/legacy/wn/widgets/doc_column_view.js similarity index 100% rename from js/wn/widgets/doc_column_view.js rename to js/legacy/wn/widgets/doc_column_view.js diff --git a/js/wn/widgets/filters.js b/js/legacy/wn/widgets/filters.js similarity index 100% rename from js/wn/widgets/filters.js rename to js/legacy/wn/widgets/filters.js diff --git a/js/wn/widgets/follow.js b/js/legacy/wn/widgets/follow.js similarity index 100% rename from js/wn/widgets/follow.js rename to js/legacy/wn/widgets/follow.js diff --git a/js/wn/widgets/footer.js b/js/legacy/wn/widgets/footer.js similarity index 100% rename from js/wn/widgets/footer.js rename to js/legacy/wn/widgets/footer.js diff --git a/js/wn/widgets/form/attachments.js b/js/legacy/wn/widgets/form/attachments.js similarity index 100% rename from js/wn/widgets/form/attachments.js rename to js/legacy/wn/widgets/form/attachments.js diff --git a/js/wn/widgets/form/comments.js b/js/legacy/wn/widgets/form/comments.js similarity index 100% rename from js/wn/widgets/form/comments.js rename to js/legacy/wn/widgets/form/comments.js diff --git a/js/wn/widgets/form/sidebar.js b/js/legacy/wn/widgets/form/sidebar.js similarity index 100% rename from js/wn/widgets/form/sidebar.js rename to js/legacy/wn/widgets/form/sidebar.js diff --git a/js/wn/widgets/listing.js b/js/legacy/wn/widgets/listing.js similarity index 100% rename from js/wn/widgets/listing.js rename to js/legacy/wn/widgets/listing.js diff --git a/js/wn/widgets/page_sidebar.js b/js/legacy/wn/widgets/page_sidebar.js similarity index 100% rename from js/wn/widgets/page_sidebar.js rename to js/legacy/wn/widgets/page_sidebar.js diff --git a/js/wnf.compressed.js b/js/legacy/wnf.compressed.js similarity index 93% rename from js/wnf.compressed.js rename to js/legacy/wnf.compressed.js index 5b3ea6af0a..b330ab5969 100644 --- a/js/wnf.compressed.js +++ b/js/legacy/wnf.compressed.js @@ -1,13 +1,7 @@ -window.dhtmlHistory={isIE:false,isOpera:false,isSafari:false,isKonquerer:false,isGecko:false,isSupported:false,create:function(_1){var _2=this;var UA=navigator.userAgent.toLowerCase();var _4=navigator.platform.toLowerCase();var _5=navigator.vendor||"";if(_5==="KDE"){this.isKonqueror=true;this.isSupported=false;}else{if(typeof window.opera!=="undefined"){this.isOpera=true;this.isSupported=true;}else{if(typeof document.all!=="undefined"){this.isIE=true;this.isSupported=true;}else{if(_5.indexOf("Apple Computer, Inc.")>-1&&parseFloat(navigator.appVersion)<3.0){this.isSafari=true;this.isSupported=(_4.indexOf("mac")>-1);}else{if(UA.indexOf("gecko")!=-1){this.isGecko=true;this.isSupported=true;}}}}}window.historyStorage.setup(_1);if(this.isSafari){this.createSafari();}else{if(this.isOpera){this.createOpera();}}var _6=this.getCurrentLocation();this.currentLocation=_6;if(this.isIE){this.createIE(_6);}var _7=function(){_2.firstLoad=null;};this.addEventListener(window,"unload",_7);if(this.isIE){this.ignoreLocationChange=true;}else{if(!historyStorage.hasKey(this.PAGELOADEDSTRING)){this.ignoreLocationChange=true;this.firstLoad=true;historyStorage.put(this.PAGELOADEDSTRING,true);}else{this.ignoreLocationChange=false;this.fireOnNewListener=true;}}var _8=function(){_2.checkLocation();};setInterval(_8,100);},initialize:function(){if(this.isIE){if(!historyStorage.hasKey(this.PAGELOADEDSTRING)){this.fireOnNewListener=false;this.firstLoad=true;historyStorage.put(this.PAGELOADEDSTRING,true);}else{this.fireOnNewListener=true;this.firstLoad=false;}}},addListener:function(_9){this.listener=_9;if(this.fireOnNewListener){this.fireHistoryEvent(this.currentLocation);this.fireOnNewListener=false;}},addEventListener:function(o,e,l){if(o.addEventListener){o.addEventListener(e,l,false);}else{if(o.attachEvent){o.attachEvent("on"+e,function(){l(window.event);});}}},add:function(_d,_e){if(this.isSafari){_d=this.removeHash(_d);historyStorage.put(_d,_e);this.currentLocation=_d;window.location.hash=_d;this.putSafariState(_d);}else{var _f=this;var _10=function(){if(_f.currentWaitTime>0){_f.currentWaitTime=_f.currentWaitTime-_f.waitTime;}_d=_f.removeHash(_d);if(document.getElementById(_d)&&_f.debugMode){var e="Exception: History locations can not have the same value as _any_ IDs that might be in the document,"+" due to a bug in IE; please ask the developer to choose a history location that does not match any HTML"+" IDs in this document. The following ID is already taken and cannot be a location: "+_d;throw new Error(e);}historyStorage.put(_d,_e);_f.ignoreLocationChange=true;_f.ieAtomicLocationChange=true;_f.currentLocation=_d;window.location.hash=_d;if(_f.isIE){_f.iframe.src="blank.html?"+_d;}_f.ieAtomicLocationChange=false;};window.setTimeout(_10,this.currentWaitTime);this.currentWaitTime=this.currentWaitTime+this.waitTime;}},isFirstLoad:function(){return this.firstLoad;},getVersion:function(){return"0.6";},getCurrentLocation:function(){var r=(this.isSafari?this.getSafariState():this.getCurrentHash());return r;},getCurrentHash:function(){var r=window.location.href;var i=r.indexOf("#");return(i>=0?r.substr(i+1):"");},PAGELOADEDSTRING:"DhtmlHistory_pageLoaded",listener:null,waitTime:200,currentWaitTime:0,currentLocation:null,iframe:null,safariHistoryStartPoint:null,safariStack:null,safariLength:null,ignoreLocationChange:null,fireOnNewListener:null,firstLoad:null,ieAtomicLocationChange:null,createIE:function(_15){this.waitTime=400;var _16=(historyStorage.debugMode?"width: 800px;height:80px;border:1px solid black;":historyStorage.hideStyles);var _17="rshHistoryFrame";var _18="";document.write(_18);this.iframe=document.getElementById(_17);},createOpera:function(){this.waitTime=400;var _19="";document.write(_19);},createSafari:function(){var _1a="rshSafariForm";var _1b="rshSafariStack";var _1c="rshSafariLength";var _1d=historyStorage.debugMode?historyStorage.showStyles:historyStorage.hideStyles;var _1e=(historyStorage.debugMode?"width:800px;height:20px;border:1px solid black;margin:0;padding:0;":historyStorage.hideStyles);var _1f="

"+""+""+"";document.write(_1f);this.safariStack=document.getElementById(_1b);this.safariLength=document.getElementById(_1c);if(!historyStorage.hasKey(this.PAGELOADEDSTRING)){this.safariHistoryStartPoint=history.length;this.safariLength.value=this.safariHistoryStartPoint;}else{this.safariHistoryStartPoint=this.safariLength.value;}},getSafariStack:function(){var r=this.safariStack.value;return historyStorage.fromJSON(r);},getSafariState:function(){var _21=this.getSafariStack();var _22=_21[history.length-this.safariHistoryStartPoint-1];return _22;},putSafariState:function(_23){var _24=this.getSafariStack();_24[history.length-this.safariHistoryStartPoint]=_23;this.safariStack.value=historyStorage.toJSON(_24);},fireHistoryEvent:function(_25){var _26=historyStorage.get(_25);this.listener.call(null,_25,_26);},checkLocation:function(){if(!this.isIE&&this.ignoreLocationChange){this.ignoreLocationChange=false;return;}if(!this.isIE&&this.ieAtomicLocationChange){return;}var _27=this.getCurrentLocation();if(_27==this.currentLocation){return;}this.ieAtomicLocationChange=true;if(this.isIE&&this.getIframeHash()!=_27){this.iframe.src="blank.html?"+_27;}else{if(this.isIE){return;}}this.currentLocation=_27;this.ieAtomicLocationChange=false;this.fireHistoryEvent(_27);},getIframeHash:function(){var doc=this.iframe.contentWindow.document;var _29=String(doc.location.search);if(_29.length==1&&_29.charAt(0)=="?"){_29="";}else{if(_29.length>=2&&_29.charAt(0)=="?"){_29=_29.substring(1);}}return _29;},removeHash:function(_2a){var r;if(_2a===null||_2a===undefined){r=null;}else{if(_2a===""){r="";}else{if(_2a.length==1&&_2a.charAt(0)=="#"){r="";}else{if(_2a.length>1&&_2a.charAt(0)=="#"){r=_2a.substring(1);}else{r=_2a;}}}}return r;},iframeLoaded:function(_2c){if(this.ignoreLocationChange){this.ignoreLocationChange=false;return;}var _2d=String(_2c.search);if(_2d.length==1&&_2d.charAt(0)=="?"){_2d="";}else{if(_2d.length>=2&&_2d.charAt(0)=="?"){_2d=_2d.substring(1);}}window.location.hash=_2d;this.fireHistoryEvent(_2d);}};window.historyStorage={setup:function(_2e){if(typeof _2e!=="undefined"){if(_2e.debugMode){this.debugMode=_2e.debugMode;}if(_2e.toJSON){this.toJSON=_2e.toJSON;}if(_2e.fromJSON){this.fromJSON=_2e.fromJSON;}}var _2f="rshStorageForm";var _30="rshStorageField";var _31=this.debugMode?historyStorage.showStyles:historyStorage.hideStyles;var _32=(historyStorage.debugMode?"width: 800px;height:80px;border:1px solid black;":historyStorage.hideStyles);var _33="
"+""+"
";document.write(_33);this.storageField=document.getElementById(_30);if(typeof window.opera!=="undefined"){this.storageField.focus();}},put:function(key,_35){this.assertValidKey(key);if(this.hasKey(key)){this.remove(key);}this.storageHash[key]=_35;this.saveHashTable();},get:function(key){this.assertValidKey(key);this.loadHashTable();var _37=this.storageHash[key];if(_37===undefined){_37=null;}return _37;},remove:function(key){this.assertValidKey(key);this.loadHashTable();delete this.storageHash[key];this.saveHashTable();},reset:function(){this.storageField.value="";this.storageHash={};},hasKey:function(key){this.assertValidKey(key);this.loadHashTable();return(typeof this.storageHash[key]!=="undefined");},isValidKey:function(key){return(typeof key==="string");},showStyles:"border:0;margin:0;padding:0;",hideStyles:"left:-1000px;top:-1000px;width:1px;height:1px;border:0;position:absolute;",debugMode:false,storageHash:{},hashLoaded:false,storageField:null,assertValidKey:function(key){var _3c=this.isValidKey(key);if(!_3c&&this.debugMode){throw new Error("Please provide a valid key for window.historyStorage. Invalid key = "+key+".");}},loadHashTable:function(){if(!this.hashLoaded){var _3d=this.storageField.value;if(_3d!==""&&_3d!==null){this.storageHash=this.fromJSON(_3d);this.hashLoaded=true;}}},saveHashTable:function(){this.loadHashTable();var _3e=this.toJSON(this.storageHash);this.storageField.value=_3e;},toJSON:function(o){return o;},fromJSON:function(s){return s;}};var wn={} -wn.widgets={form:{},report:{}} -wn.utils={} -wn.model={} -wn.profile={} -wn.session={} -var NEWLINE='\n';var login_file='';var version='v170';var profile;var session={};var is_testing=false;var user;var user_defaults;var user_roles;var user_fullname;var user_email;var user_img={};var home_page;var page_body;var pscript={};var selector;var keypress_observers=[];var click_observers=[];var editAreaLoader;var top_index=91;var _f={};var _p={};var _e={};var _r={};var FILTER_SEP='\1';var _c={};var widget_files={'_f.FrmContainer':'form.compressed.js','_c.CalendarPopup':'widgets/form/date_picker.js','_r.ReportContainer':'report.compressed.js','_p.PrintQuery':'widgets/print_query.js','Calendar':'widgets/calendar.js','Recommendation':'widgets/recommend.js','RatingWidget':'widgets/rating.js'} -var Recommendation;var RatingWidget;var frms={};var cur_frm;var pscript={};var validated=true;var validation_message='';var tinymce_loaded;var $c_get_values;var get_server_fields;var set_multiple;var set_field_tip;var refresh_field;var refresh_many;var set_field_options;var set_field_permlevel;var hide_field;var unhide_field;var print_table;var sendmail;var exp_icon="images/ui/right-arrow.gif";var min_icon="images/ui/down-arrow.gif";var space_holder_div=$a(null,'div','space_holder');space_holder_div.innerHTML='Loading...' -var startup_list=[];wn.utils.full_name=function(fn,ln){return fn+(ln?' ':'')+(ln?ln:'')} +wn.provide('wn.widgets.form');wn.provide('wn.widgets.report');wn.provide('wn.utils');wn.provide('wn.model');wn.provide('wn.profile');wn.provide('wn.session');wn.provide('_f');wn.provide('_p');wn.provide('_r');wn.provide('_c');wn.provide('_e');wn.provide('_startup_data') +wn.settings.no_history=1;var NEWLINE='\n';var login_file='';var version='v170';var profile=null;var session={};var is_testing=false;var user=null;var user_defaults=null;var user_roles=null;var user_fullname=null;var user_email=null;var user_img={};var home_page=null;var page_body=null;var pscript={};var selector=null;var keypress_observers=[];var click_observers=[];var top_index=91;var _f={};var _p={};var _e={};var _r={};var FILTER_SEP='\1';var _c={};var widget_files={'_f.FrmContainer':'form.compressed.js','_c.CalendarPopup':'widgets/form/date_picker.js','_r.ReportContainer':'report.compressed.js','_p.PrintQuery':'widgets/print_query.js','Calendar':'widgets/calendar.js','Recommendation':'widgets/recommend.js','RatingWidget':'widgets/rating.js'} +var frms={};var cur_frm=null;var pscript={};var validated=true;var validation_message='';var tinymce_loaded=null;var exp_icon="images/ui/right-arrow.gif";var min_icon="images/ui/down-arrow.gif";var startup_list=[];wn.utils.full_name=function(fn,ln){return fn+(ln?' ':'')+(ln?ln:'')} function fmt_money(v){if(v==null||v=='')return'0.00';v=(v+'').replace(/,/g,'');v=parseFloat(v);if(isNaN(v)){return'';}else{var cp=locals['Control Panel']['Control Panel'];var val=2;if(cp.currency_format=='Millions')val=3;v=v.toFixed(2);var delimiter=",";amount=v+'';var a=amount.split('.',2) var d=a[1];var i=parseInt(a[0]);if(isNaN(i)){return'';} var minus='';if(v<0){minus='-';} @@ -107,7 +101,7 @@ wn.datetime.time_to_hhmm=function(hh,mm,am){if(am=='AM'&&hh=='12'){hh='00';}else return hh+':'+mm;} wn.datetime.comment_when=function(dt,only_days){if(only_days){var cdate=dateutil.str_to_obj(dt.split(' ')[0]);var diff=(new Date()-cdate)/1000;if(diff<604800){var t=Math.floor(diff/86400);if(t==0)return"Today";if(t==1)return"Yesterday";return t+" days ago"}else{return cdate.getDate()+" "+month_list[cdate.getMonth()]+" "+cdate.getFullYear();}}else{var cdate=dateutil.str_to_obj(dt);var diff=(new Date()-cdate)/1000;if(diff<60){return"Few moments ago"}else if(diff<3600){var t=Math.floor(diff/60);return t+" minute"+(t==1?"":"s")+" ago"}else if(diff<86400){var t=Math.floor(diff/3600);return t+" hour"+(t==1?"":"s")+" ago"}else if(diff<604800){var t=Math.floor(diff/86400);return t+" day"+(t==1?"":"s")+" ago"}else{return cdate.getDate()+" "+month_list[cdate.getMonth()]+" "+cdate.getFullYear();}}} var date=dateutil=wn.datetime;var get_today=wn.datetime.get_today -var comment_when=wn.datetime.comment_when;var time_to_ampm=wn.datetime.time_to_ampm;var time_to_hhmm=wn.datetime.time_to_hhmm;var only_date=wn.datetime.only_date;wn.dom={id_count:0,set_unique_id:function(ele){var id='unique-'+wn.dom.id_count;ele.setAttribute('id',id);wn.dom.id_count++;return id;}} +var comment_when=wn.datetime.comment_when;var time_to_ampm=wn.datetime.time_to_ampm;var time_to_hhmm=wn.datetime.time_to_hhmm;var only_date=wn.datetime.only_date;wn.dom.set_unique_id=function(ele){var id='unique-'+wn.dom.id_count;ele.setAttribute('id',id);wn.dom.id_count++;return id;} wn.tinymce={add_simple:function(ele,height){if(ele.myid){tinyMCE.execCommand('mceAddControl',true,ele.myid);return;} ele.myid=wn.dom.set_unique_id(ele);$(ele).tinymce({script_url:'js/tiny_mce_33/tiny_mce.js',height:height?height:'200px',theme:"advanced",theme_advanced_buttons1:"bold,italic,underline,separator,strikethrough,justifyleft,justifycenter,justifyright,justifyfull,bullist,numlist,outdent,indent,link,unlink,forecolor,backcolor,code,",theme_advanced_buttons2:"",theme_advanced_buttons3:"",theme_advanced_toolbar_location:"top",theme_advanced_toolbar_align:"left",theme_advanced_path:false,theme_advanced_resizing:false});},remove:function(ele){tinyMCE.execCommand('mceRemoveControl',true,ele.myid);},get_value:function(ele){return tinymce.get(ele.myid).getContent();}} wn.ele={link:function(args){var span=$a(args.parent,'span','link_type',args.style);span.loading_img=$a(args.parent,'img','',{margin:'0px 4px -2px 4px',display:'none'});span.loading_img.src='images/ui/button-load.gif';span.innerHTML=args.label;span.user_onclick=args.onclick;span.onclick=function(){if(!this.disabled)this.user_onclick(this);} @@ -220,8 +214,7 @@ return s;} function objpos(obj){if(obj.substr)obj=$i(obj);var p=$(obj).offset();return{x:cint(p.left),y:cint(p.top)}} function get_screen_dims(){var d={};d.w=0;d.h=0;if(typeof(window.innerWidth)=='number'){d.w=window.innerWidth;d.h=window.innerHeight;}else if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){d.w=document.documentElement.clientWidth;d.h=document.documentElement.clientHeight;}else if(document.body&&(document.body.clientWidth||document.body.clientHeight)){d.w=document.body.clientWidth;d.h=document.body.clientHeight;} return d} -function get_page_size(){if(window.innerHeight&&window.scrollMaxY){yh=window.innerHeight+window.scrollMaxY;xh=window.innerWidth+window.scrollMaxX;}else if(document.body.scrollHeight>document.body.offsetHeight){yh=document.body.scrollHeight;xh=document.body.scrollWidth;}else{yh=document.body.offsetHeight;xh=document.body.offsetWidth;} -r=[xh,yh];return r;} +function get_page_size(){return[$(document).height(),$(document).width()];} function get_scroll_top(){var st=0;if(document.documentElement&&document.documentElement.scrollTop) st=document.documentElement.scrollTop;else if(document.body&&document.body.scrollTop) st=document.body.scrollTop;return st;} @@ -255,10 +248,10 @@ if(freeze_msg)unfreeze();if(!validate_session(r,rtxt))return;if(r.exc){errprint( saveAllowed=true;if(fn)fn(r,rtxt);}} req.onreadystatechange=ret_fn;req.open("POST",outUrl,true);req.setRequestHeader("ENCTYPE","multipart/form-data");req.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");args['cmd']=command;req.send(makeArgString(args));if(!no_spinner)set_loading();if(freeze_msg)freeze(freeze_msg,1);} function validate_session(r,rt){if(r.message=='Logged In'){start_sid=get_cookie('sid');return true;} -if(start_sid&&start_sid!=get_cookie('sid')&&user!='Guest'){page_body.set_session_changed();return;} +if(start_sid&&start_sid!=get_cookie('sid')&&user!='Guest'){return;} if(r.exc&&r.session_status=='Session Expired'){resume_session();return;} if(r.exc&&r.session_status=='Logged Out'){msgprint('You have been logged out');setTimeout('redirect_to_login()',3000);return;} -if(r.exc&&r.exc_type&&r.exc_type=='PermissionError'){loadpage('_home');} +if(r.exc&&r.exc_type&&r.exc_type=='PermissionError'){try{loadpage('_home');}catch(e){}} return true;} function $c_obj(doclist,method,arg,call_back,no_spinner,freeze_msg){var args={'method':method,'arg':(typeof arg=='string'?arg:JSON.stringify(arg))} if(typeof doclist=='string')args.doctype=doclist;else args.docs=compress_doclist(doclist) @@ -370,7 +363,7 @@ this.set_values=function(dict){for(var key in dict){if(this.fields_dict[key]){th wn.widgets.Dialog=function(opts){this.opts=opts;this.display=false;this.make=function(opts){if(opts)this.opts=opts;this.wrapper=$a(popup_cont,'div','dialog_wrapper');if(this.opts.width) this.wrapper.style.width=this.opts.width+'px';this.make_head();this.body=$a(this.wrapper,'div','dialog_body');if(this.opts.fields) this.make_fields(this.body,this.opts.fields);} -this.make_head=function(){var me=this;this.head=$a(this.wrapper,'div','dialog_head');var t=make_table(this.head,1,2,'100%',['100%','16px'],{padding:'2px'});$y($td(t,0,0),{paddingLeft:'16px',fontWeight:'bold',fontSize:'14px',textAlign:'center'});$y($td(t,0,1),{textAlign:'right'});var img=$a($td(t,0,01),'img','',{cursor:'pointer'});img.src='images/icons/close.gif';this.title_text=$td(t,0,0);this.set_title(this.opts.title);img.onclick=function(){if(me.oncancel)me.oncancel();me.hide();} +this.make_head=function(){var me=this;this.head=$a(this.wrapper,'div','dialog_head');var t=make_table(this.head,1,2,'100%',['100%','16px'],{padding:'2px'});$y($td(t,0,0),{paddingLeft:'16px',fontWeight:'bold',fontSize:'14px',textAlign:'center'});$y($td(t,0,1),{textAlign:'right'});var img=$a($td(t,0,01),'img','',{cursor:'pointer'});img.src='lib/images/icons/close.gif';this.title_text=$td(t,0,0);this.set_title(this.opts.title);img.onclick=function(){if(me.oncancel)me.oncancel();me.hide();} this.cancel_img=img;} this.set_title=function(t){this.title_text.innerHTML=t?t:'';} this.set_postion=function(){var d=get_screen_dims();this.wrapper.style.left=((d.w-cint(this.wrapper.style.width))/2)+'px';this.wrapper.style.top=(get_scroll_top()+60)+'px';top_index++;$y(this.wrapper,{zIndex:top_index});} @@ -507,7 +500,7 @@ this.start=0;this.query=this.opts.get_query();this.add_limits();args={query_max: args.simple_query=this.query;if(this.opts.as_dict)args.as_dict=1;if(this.opts.formatted)args.formatted=1;if(this.loading_img)$di(this.loading_img);$c('webnotes.widgets.query_builder.runquery',args,function(r,rt){me.make_results(r,rt)},null,this.opts.no_loading);} this.add_limits=function(){this.query+=' LIMIT '+this.start+','+(this.page_length+1);} if(opts)this.make();} -function Tree(parent,width,do_animate){this.width=width;this.nodes={};this.allnodes={};this.cur_node;this.is_root=1;this.do_animate=do_animate;var me=this;this.exp_img='images/icons/plus.gif';this.col_img='images/icons/minus.gif';this.body=$a(parent,'div');if(width)$w(this.body,width);this.addNode=function(parent,id,imagesrc,onclick,onexpand,opts,label){var t=new TreeNode(me,parent,id,imagesrc,onclick,onexpand,opts,label);if(!parent){me.nodes[id]=t;}else{parent.nodes[id]=t;} +function Tree(parent,width,do_animate){this.width=width;this.nodes={};this.allnodes={};this.cur_node;this.is_root=1;this.do_animate=do_animate;var me=this;this.exp_img='lib/images/icons/plus.gif';this.col_img='lib/images/icons/minus.gif';this.body=$a(parent,'div');if(width)$w(this.body,width);this.addNode=function(parent,id,imagesrc,onclick,onexpand,opts,label){var t=new TreeNode(me,parent,id,imagesrc,onclick,onexpand,opts,label);if(!parent){me.nodes[id]=t;}else{parent.nodes[id]=t;} me.allnodes[id]=t;if(onexpand) t.create_expimage();t.expanded_once=0;return t;} var me=this;this.collapseall=function(){for(n in me.allnodes){me.allnodes[n].collapse();}}} @@ -517,7 +510,7 @@ this.opts={show_exp_img:1,show_icon:1,label_style:{padding:'2px',cursor:'pointer var tc=1;if(this.opts.show_exp_img)tc+=1;if(!this.parent.tab){this.parent.tab=make_table(this.parent.body,2,tc,'100%');$y(this.parent.tab,{tableLayout:'fixed',borderCollapse:'collapse'});}else{this.parent.tab.append_row();this.parent.tab.append_row();} var mytab=this.parent.tab;if(this.opts.show_exp_img){this.exp_cell=$td(mytab,mytab.rows.length-2,0);$y(this.exp_cell,{cursor:'pointer',textAlign:'center',verticalAlign:'middle',width:'20px'});this.exp_cell.innerHTML=' ';}else{} this.create_expimage=function(){if(!me.opts.show_exp_img)return;if(!me.expimage){me.exp_cell.innerHTML='';me.expimage=$a(me.exp_cell,'img');me.expimage.src=me.exp_img?me.exp_img:me.tree.exp_img;me.expimage.onclick=me.toggle;}} -this.label=$a($td(mytab,mytab.rows.length-2,tc-1),'div');$y(this.label,this.opts.label_style);if(this.opts.show_icon){var t2=make_table($a(this.label,'div'),1,2,'100%',['20px',null]);$y(t2,{borderCollapse:'collapse'});this.img_cell=$td(t2,0,0);$y(this.img_cell,{cursor:'pointer',verticalAlign:'middle',width:'20px'});if(!imagesrc)imagesrc="images/icons/folder.gif";this.usrimg=$a(this.img_cell,'img');this.usrimg.src=imagesrc;this.label=$td(t2,0,1);$y(this.label,{verticalAlign:'middle'});} +this.label=$a($td(mytab,mytab.rows.length-2,tc-1),'div');$y(this.label,this.opts.label_style);if(this.opts.show_icon){var t2=make_table($a(this.label,'div'),1,2,'100%',['20px',null]);$y(t2,{borderCollapse:'collapse'});this.img_cell=$td(t2,0,0);$y(this.img_cell,{cursor:'pointer',verticalAlign:'middle',width:'20px'});if(!imagesrc)imagesrc="lib/images/icons/folder.gif";this.usrimg=$a(this.img_cell,'img');this.usrimg.src=imagesrc;this.label=$td(t2,0,1);$y(this.label,{verticalAlign:'middle'});} this.loading_div=$a($td(mytab,mytab.rows.length-1,this.opts.show_exp_img?1:0),"div","comment",{fontSize:'11px'});$dh(this.loading_div);this.loading_div.innerHTML='Loading...';this.body=$a($td(mytab,mytab.rows.length-1,this.opts.show_exp_img?1:0),"div",'',{overflow:'hidden',display:'none'});this.select=function(){me.show_selected();if(me.onclick)me.onclick(me);} this.show_selected=function(){if(me.tree.cur_node)me.tree.cur_node.deselect();if(me.opts.onselect_style)$y(me.label,me.opts.onselect_style) me.tree.cur_node=me;} @@ -990,7 +983,7 @@ this.setup_search=function(){me.menu.add_top_menu('Search',function(){me.search_ me.search_dialog=d;keypress_observers.push({notify_keypress:function(ev,keycode){if(keycode==13&&me.search_dialog.display)me.open_quick_search();}});me.search_sel=new SelectWidget(d.widgets['Select'],[],'120px');me.search_sel.inp.value='Select...';me.open_quick_search=function(){me.search_dialog.hide();var v=sel_val(me.search_sel);if(v)selector.set_search(v);me.search_sel.disabled=1;selector.show();} var nl=profile.can_read.join(',').split(',');for(var i=0;iHelp';$td(t,0,2).innerHTML='Feedback';$td(t,0,3).innerHTML='Profile';$td(t,0,4).innerHTML='Logout';this.menu_table_right=t;$y($td(t,0,5),{width:'18px'});this.spinner=$a($td(t,0,5),'img','',{display:'none'});this.spinner.src='images/ui/spinner.gif';} +this.setup_logout=function(){var w=$a($td(this.body_tab,0,2),'div','',{paddingTop:'2px',textAlign:'right'});this.right_table_style={fontSize:'11px',verticalAlign:'middle',height:'20px',paddingLeft:'4px',paddingRight:'4px'};var t=make_table(w,1,6,null,[],this.right_table_style);$y(t,{cssFloat:'right',color:'#FFF'});$td(t,0,0).innerHTML=user_fullname;$td(t,0,1).innerHTML='Help';$td(t,0,2).innerHTML='Feedback';$td(t,0,3).innerHTML='Profile';$td(t,0,4).innerHTML='Logout';this.menu_table_right=t;$y($td(t,0,5),{width:'18px'});this.spinner=$a($td(t,0,5),'img','',{display:'none'});this.spinner.src='lib/images/ui/spinner.gif';} this.download_backup=function(){$c('webnotes.utils.backups.get_backup',{},function(r,rt){});} this.setup();} var get_help=function(){msgprint('Help not implemented');} @@ -1002,7 +995,7 @@ if(!no_history){var tmp=[];for(var i in nav_obj.ol) if(!(nav_obj.ol[i][0]==t&&nav_obj.ol[i][1]==dt&&nav_obj.ol[i][2]==dn))tmp.push(nav_obj.ol[i]);nav_obj.ol=tmp;nav_obj.ol.push([t,dt,dn]) en_t=encodeURIComponent(t);en_dt=encodeURIComponent(dt);en_dn=dn?encodeURIComponent(dn):'';if(en_t=='Page'){var id=en_dt+(dn?('/'+en_dn):'')}else{var id=en_t+'/'+en_dt+(dn?('/'+en_dn):'')} if(nav_obj.on_open) -nav_obj.on_open(id);dhtmlHistory.add('!'+id,'');} +nav_obj.on_open(id);state=History.getState();if(state.hash!='!'+id){History.replaceState(null,null,'!'+id);}} nav_obj.notify_observers(t,dt,dn);} nav_obj.notify_observers=function(t,dt,dn){for(var i=0;i'+msg+'';$ds(dialog_message);} -if(!dialog_back){dialog_back=$a($i('body_div'),'div','dialog_back');if(isIE)dialog_back.style['filter']='alpha(opacity=60)';} -$ds(dialog_back);$y(dialog_back,{height:get_page_size()[1]+'px'});fcount++;frozen=1;} +var fcount=0;var frozen=0;var dialog_message;var dialog_back;function freeze(msg,do_freeze){if(!dialog_back){dialog_back=$a($i('body_div'),'div','dialog_back');if(isIE)dialog_back.style['filter']='alpha(opacity=60)';} +$ds(dialog_back);$y(dialog_back,{height:$(document).height()+'px'});fcount++;frozen=1;} function unfreeze(){if(dialog_message) $dh(dialog_message);if(!fcount)return;fcount--;if(!fcount){$dh(dialog_back);show_selects();frozen=0;}} -function hide_selects(){} -function show_selects(){} var err_console;var err_list=[];function errprint(t){err_list[err_list.length]=('
'+t+'
');} function submit_error(e){if(isIE){var t='Explorer: '+e+'\n'+e.description;}else{var t='Mozilla: '+e.toString()+'\n'+e.message+'\nLine Number:'+e.lineNumber;} errprint(e+'\nLine Number:'+e.lineNumber+'\nStack:'+e.stack);} @@ -1350,16 +1340,16 @@ this.set_status=function(txt){if(this.status_area) this.status_area.innerHTML=txt;} this.set_session_changed=function(){if(this.session_message_set)return;var div=$a($i('body_div').parentNode,'div','',{textAlign:'center',fontSize:'14px',margin:'150px auto'});$dh('body_div');div.innerHTML='This session has been changed. Please refresh to continue';this.session_message_set=1;} this.setup();} -var popup_cont;var session={};var start_sid=null;function startup(){dhtmlHistory.initialize();dhtmlHistory.addListener(historyChange);start_sid=get_cookie('sid');popup_cont=$a(document.getElementsByTagName('body')[0],'div');var setup_globals=function(r){profile=r.profile;user=r.profile.name;user_fullname=profile.first_name+(r.profile.last_name?(' '+r.profile.last_name):'');user_defaults=profile.defaults;user_roles=profile.roles;user_email=profile.email;profile.start_items=r.start_items;home_page=r.home_page;_p.letter_heads=r.letter_heads;sys_defaults=r.sysdefaults;session.rt=profile.can_read;if(r.ipinfo)session.ipinfo=r.ipinfo;session.dt_labels=r.dt_labels;session.rev_dt_labels={} +var popup_cont;var session={};var start_sid=null;function startup(){start_sid=get_cookie('sid');popup_cont=$a(document.getElementsByTagName('body')[0],'div');var setup_globals=function(r){profile=r.profile;user=r.profile.name;user_fullname=profile.first_name+(r.profile.last_name?(' '+r.profile.last_name):'');user_defaults=profile.defaults;user_roles=profile.roles;user_email=profile.email;profile.start_items=r.start_items;home_page=r.home_page;_p.letter_heads=r.letter_heads;sys_defaults=r.sysdefaults;session.rt=profile.can_read;if(r.ipinfo)session.ipinfo=r.ipinfo;session.dt_labels=r.dt_labels;session.rev_dt_labels={} _tags.color_map=r.tag_color_map;if(r.dt_labels){for(key in r.dt_labels)session.rev_dt_labels[r.dt_labels[key]]=key;}} var setup_history=function(r){rename_observers.push(nav_obj);} var setup_events=function(){addEvent('keyup',function(ev,target){for(var i in keypress_observers){if(keypress_observers[i]) keypress_observers[i].notify_keypress(ev,ev.keyCode);}});addEvent('click',function(ev,target){for(var i=0;i'; - $ds(dialog_message); - } - - // blur - if(!dialog_back) { - dialog_back = $a($i('body_div'), 'div', 'dialog_back'); - if(isIE) dialog_back.style['filter'] = 'alpha(opacity=60)'; - } - - $ds(dialog_back); - $y(dialog_back, {height: get_page_size()[1] + 'px'}); - - fcount++; - frozen = 1; -} -function unfreeze() { - if(dialog_message) - $dh(dialog_message); - if(!fcount)return; // anything open? - fcount--; - if(!fcount) { - $dh(dialog_back); - show_selects(); - frozen = 0; - } -} - -// Selects for IE6 -// ------------------------------------ - -function hide_selects() { } - -function show_selects() { } - - -//var fmessage; diff --git a/js/wn-coffee/app.coffee b/js/wn-coffee/app.coffee deleted file mode 100644 index da3494930e..0000000000 --- a/js/wn-coffee/app.coffee +++ /dev/null @@ -1,3 +0,0 @@ -# Entry level app - -wn.app = {} \ No newline at end of file diff --git a/js/wn-coffee/widgets/form/form.coffee b/js/wn-coffee/widgets/form/form.coffee deleted file mode 100644 index 43b8a8bae0..0000000000 --- a/js/wn-coffee/widgets/form/form.coffee +++ /dev/null @@ -1,31 +0,0 @@ -class wn.widgets.Form - constructor: (@modeltype) -> - @view = wn.app.models['DocType'][modeltype].__view - @sections = [] - - render: (@parent) -> - # wrapper - @wrapper = $a @parent 'div' 'form_wrapper' - - # render sections - for s in @view.sections - @sections.push new wn.widgets.FormSection @wrapper, section - -class wn.widgets.FormSection - constructor: (@parent, @section) -> - @columns = [] - @fields = [] - @render() - - render: -> - @wrapper = $a @parent 'div' - for f in section.fields - @render_field f, section - - render_section: (section) -> - # render fields - - - render_field: (field, section) -> - # call the field factory - make_field field, \ No newline at end of file diff --git a/cgi-bin/core/Module Def/Core/Core.txt b/py/core/Module Def/Core/Core.txt similarity index 100% rename from cgi-bin/core/Module Def/Core/Core.txt rename to py/core/Module Def/Core/Core.txt diff --git a/cgi-bin/core/Role/Administrator/Administrator.txt b/py/core/Role/Administrator/Administrator.txt similarity index 100% rename from cgi-bin/core/Role/Administrator/Administrator.txt rename to py/core/Role/Administrator/Administrator.txt diff --git a/cgi-bin/core/Role/All/All.txt b/py/core/Role/All/All.txt similarity index 100% rename from cgi-bin/core/Role/All/All.txt rename to py/core/Role/All/All.txt diff --git a/cgi-bin/core/Role/Guest/Guest.txt b/py/core/Role/Guest/Guest.txt similarity index 100% rename from cgi-bin/core/Role/Guest/Guest.txt rename to py/core/Role/Guest/Guest.txt diff --git a/cgi-bin/core/__init__.py b/py/core/__init__.py similarity index 100% rename from cgi-bin/core/__init__.py rename to py/core/__init__.py diff --git a/cgi-bin/core/doctype/__init__.py b/py/core/doctype/__init__.py similarity index 100% rename from cgi-bin/core/doctype/__init__.py rename to py/core/doctype/__init__.py diff --git a/cgi-bin/core/doctype/comment_widget_record/__init__.py b/py/core/doctype/comment_widget_record/__init__.py similarity index 100% rename from cgi-bin/core/doctype/comment_widget_record/__init__.py rename to py/core/doctype/comment_widget_record/__init__.py diff --git a/cgi-bin/core/doctype/comment_widget_record/comment_widget_record.txt b/py/core/doctype/comment_widget_record/comment_widget_record.txt similarity index 100% rename from cgi-bin/core/doctype/comment_widget_record/comment_widget_record.txt rename to py/core/doctype/comment_widget_record/comment_widget_record.txt diff --git a/cgi-bin/core/doctype/control_panel/__init__.py b/py/core/doctype/control_panel/__init__.py similarity index 100% rename from cgi-bin/core/doctype/control_panel/__init__.py rename to py/core/doctype/control_panel/__init__.py diff --git a/cgi-bin/core/doctype/control_panel/control_panel.py b/py/core/doctype/control_panel/control_panel.py similarity index 100% rename from cgi-bin/core/doctype/control_panel/control_panel.py rename to py/core/doctype/control_panel/control_panel.py diff --git a/cgi-bin/core/doctype/control_panel/control_panel.txt b/py/core/doctype/control_panel/control_panel.txt similarity index 100% rename from cgi-bin/core/doctype/control_panel/control_panel.txt rename to py/core/doctype/control_panel/control_panel.txt diff --git a/cgi-bin/core/doctype/custom_field/__init__.py b/py/core/doctype/custom_field/__init__.py similarity index 100% rename from cgi-bin/core/doctype/custom_field/__init__.py rename to py/core/doctype/custom_field/__init__.py diff --git a/cgi-bin/core/doctype/custom_field/custom_field.js b/py/core/doctype/custom_field/custom_field.js similarity index 100% rename from cgi-bin/core/doctype/custom_field/custom_field.js rename to py/core/doctype/custom_field/custom_field.js diff --git a/cgi-bin/core/doctype/custom_field/custom_field.py b/py/core/doctype/custom_field/custom_field.py similarity index 100% rename from cgi-bin/core/doctype/custom_field/custom_field.py rename to py/core/doctype/custom_field/custom_field.py diff --git a/cgi-bin/core/doctype/custom_field/custom_field.txt b/py/core/doctype/custom_field/custom_field.txt similarity index 100% rename from cgi-bin/core/doctype/custom_field/custom_field.txt rename to py/core/doctype/custom_field/custom_field.txt diff --git a/cgi-bin/core/doctype/custom_script/__init__.py b/py/core/doctype/custom_script/__init__.py similarity index 100% rename from cgi-bin/core/doctype/custom_script/__init__.py rename to py/core/doctype/custom_script/__init__.py diff --git a/cgi-bin/core/doctype/custom_script/custom_script.txt b/py/core/doctype/custom_script/custom_script.txt similarity index 100% rename from cgi-bin/core/doctype/custom_script/custom_script.txt rename to py/core/doctype/custom_script/custom_script.txt diff --git a/cgi-bin/core/doctype/default_home_page/__init__.py b/py/core/doctype/default_home_page/__init__.py similarity index 100% rename from cgi-bin/core/doctype/default_home_page/__init__.py rename to py/core/doctype/default_home_page/__init__.py diff --git a/cgi-bin/core/doctype/default_home_page/default_home_page.txt b/py/core/doctype/default_home_page/default_home_page.txt similarity index 100% rename from cgi-bin/core/doctype/default_home_page/default_home_page.txt rename to py/core/doctype/default_home_page/default_home_page.txt diff --git a/cgi-bin/core/doctype/defaultvalue/__init__.py b/py/core/doctype/defaultvalue/__init__.py similarity index 100% rename from cgi-bin/core/doctype/defaultvalue/__init__.py rename to py/core/doctype/defaultvalue/__init__.py diff --git a/cgi-bin/core/doctype/defaultvalue/defaultvalue.txt b/py/core/doctype/defaultvalue/defaultvalue.txt similarity index 100% rename from cgi-bin/core/doctype/defaultvalue/defaultvalue.txt rename to py/core/doctype/defaultvalue/defaultvalue.txt diff --git a/cgi-bin/core/doctype/docfield/__init__.py b/py/core/doctype/docfield/__init__.py similarity index 100% rename from cgi-bin/core/doctype/docfield/__init__.py rename to py/core/doctype/docfield/__init__.py diff --git a/cgi-bin/core/doctype/docfield/docfield.txt b/py/core/doctype/docfield/docfield.txt similarity index 100% rename from cgi-bin/core/doctype/docfield/docfield.txt rename to py/core/doctype/docfield/docfield.txt diff --git a/cgi-bin/core/doctype/docformat/__init__.py b/py/core/doctype/docformat/__init__.py similarity index 100% rename from cgi-bin/core/doctype/docformat/__init__.py rename to py/core/doctype/docformat/__init__.py diff --git a/cgi-bin/core/doctype/docformat/docformat.txt b/py/core/doctype/docformat/docformat.txt similarity index 100% rename from cgi-bin/core/doctype/docformat/docformat.txt rename to py/core/doctype/docformat/docformat.txt diff --git a/cgi-bin/core/doctype/docperm/__init__.py b/py/core/doctype/docperm/__init__.py similarity index 100% rename from cgi-bin/core/doctype/docperm/__init__.py rename to py/core/doctype/docperm/__init__.py diff --git a/cgi-bin/core/doctype/docperm/docperm.txt b/py/core/doctype/docperm/docperm.txt similarity index 100% rename from cgi-bin/core/doctype/docperm/docperm.txt rename to py/core/doctype/docperm/docperm.txt diff --git a/cgi-bin/core/doctype/doctrigger/__init__.py b/py/core/doctype/doctrigger/__init__.py similarity index 100% rename from cgi-bin/core/doctype/doctrigger/__init__.py rename to py/core/doctype/doctrigger/__init__.py diff --git a/cgi-bin/core/doctype/doctrigger/doctrigger.txt b/py/core/doctype/doctrigger/doctrigger.txt similarity index 100% rename from cgi-bin/core/doctype/doctrigger/doctrigger.txt rename to py/core/doctype/doctrigger/doctrigger.txt diff --git a/cgi-bin/core/doctype/doctype/__init__.py b/py/core/doctype/doctype/__init__.py similarity index 100% rename from cgi-bin/core/doctype/doctype/__init__.py rename to py/core/doctype/doctype/__init__.py diff --git a/cgi-bin/core/doctype/doctype/doctype.js b/py/core/doctype/doctype/doctype.js similarity index 100% rename from cgi-bin/core/doctype/doctype/doctype.js rename to py/core/doctype/doctype/doctype.js diff --git a/cgi-bin/core/doctype/doctype/doctype.py b/py/core/doctype/doctype/doctype.py similarity index 100% rename from cgi-bin/core/doctype/doctype/doctype.py rename to py/core/doctype/doctype/doctype.py diff --git a/cgi-bin/core/doctype/doctype/doctype.txt b/py/core/doctype/doctype/doctype.txt similarity index 100% rename from cgi-bin/core/doctype/doctype/doctype.txt rename to py/core/doctype/doctype/doctype.txt diff --git a/cgi-bin/core/doctype/doctype_label/__init__.py b/py/core/doctype/doctype_label/__init__.py similarity index 100% rename from cgi-bin/core/doctype/doctype_label/__init__.py rename to py/core/doctype/doctype_label/__init__.py diff --git a/cgi-bin/core/doctype/doctype_label/doctype_label.txt b/py/core/doctype/doctype_label/doctype_label.txt similarity index 100% rename from cgi-bin/core/doctype/doctype_label/doctype_label.txt rename to py/core/doctype/doctype_label/doctype_label.txt diff --git a/cgi-bin/core/doctype/doctype_mapper/__init__.py b/py/core/doctype/doctype_mapper/__init__.py similarity index 100% rename from cgi-bin/core/doctype/doctype_mapper/__init__.py rename to py/core/doctype/doctype_mapper/__init__.py diff --git a/cgi-bin/core/doctype/doctype_mapper/doctype_mapper.js b/py/core/doctype/doctype_mapper/doctype_mapper.js similarity index 100% rename from cgi-bin/core/doctype/doctype_mapper/doctype_mapper.js rename to py/core/doctype/doctype_mapper/doctype_mapper.js diff --git a/cgi-bin/core/doctype/doctype_mapper/doctype_mapper.py b/py/core/doctype/doctype_mapper/doctype_mapper.py similarity index 100% rename from cgi-bin/core/doctype/doctype_mapper/doctype_mapper.py rename to py/core/doctype/doctype_mapper/doctype_mapper.py diff --git a/cgi-bin/core/doctype/doctype_mapper/doctype_mapper.txt b/py/core/doctype/doctype_mapper/doctype_mapper.txt similarity index 100% rename from cgi-bin/core/doctype/doctype_mapper/doctype_mapper.txt rename to py/core/doctype/doctype_mapper/doctype_mapper.txt diff --git a/cgi-bin/core/doctype/event/__init__.py b/py/core/doctype/event/__init__.py similarity index 100% rename from cgi-bin/core/doctype/event/__init__.py rename to py/core/doctype/event/__init__.py diff --git a/cgi-bin/core/doctype/event/event.js b/py/core/doctype/event/event.js similarity index 100% rename from cgi-bin/core/doctype/event/event.js rename to py/core/doctype/event/event.js diff --git a/cgi-bin/core/doctype/event/event.txt b/py/core/doctype/event/event.txt similarity index 100% rename from cgi-bin/core/doctype/event/event.txt rename to py/core/doctype/event/event.txt diff --git a/cgi-bin/core/doctype/event_role/__init__.py b/py/core/doctype/event_role/__init__.py similarity index 100% rename from cgi-bin/core/doctype/event_role/__init__.py rename to py/core/doctype/event_role/__init__.py diff --git a/cgi-bin/core/doctype/event_role/event_role.txt b/py/core/doctype/event_role/event_role.txt similarity index 100% rename from cgi-bin/core/doctype/event_role/event_role.txt rename to py/core/doctype/event_role/event_role.txt diff --git a/cgi-bin/core/doctype/event_user/__init__.py b/py/core/doctype/event_user/__init__.py similarity index 100% rename from cgi-bin/core/doctype/event_user/__init__.py rename to py/core/doctype/event_user/__init__.py diff --git a/cgi-bin/core/doctype/event_user/event_user.txt b/py/core/doctype/event_user/event_user.txt similarity index 100% rename from cgi-bin/core/doctype/event_user/event_user.txt rename to py/core/doctype/event_user/event_user.txt diff --git a/cgi-bin/core/doctype/field_mapper_detail/__init__.py b/py/core/doctype/field_mapper_detail/__init__.py similarity index 100% rename from cgi-bin/core/doctype/field_mapper_detail/__init__.py rename to py/core/doctype/field_mapper_detail/__init__.py diff --git a/cgi-bin/core/doctype/field_mapper_detail/field_mapper_detail.txt b/py/core/doctype/field_mapper_detail/field_mapper_detail.txt similarity index 100% rename from cgi-bin/core/doctype/field_mapper_detail/field_mapper_detail.txt rename to py/core/doctype/field_mapper_detail/field_mapper_detail.txt diff --git a/cgi-bin/core/doctype/file/__init__.py b/py/core/doctype/file/__init__.py similarity index 100% rename from cgi-bin/core/doctype/file/__init__.py rename to py/core/doctype/file/__init__.py diff --git a/cgi-bin/core/doctype/file/file.py b/py/core/doctype/file/file.py similarity index 100% rename from cgi-bin/core/doctype/file/file.py rename to py/core/doctype/file/file.py diff --git a/cgi-bin/core/doctype/file/file.txt b/py/core/doctype/file/file.txt similarity index 100% rename from cgi-bin/core/doctype/file/file.txt rename to py/core/doctype/file/file.txt diff --git a/cgi-bin/core/doctype/file_data/__init__.py b/py/core/doctype/file_data/__init__.py similarity index 100% rename from cgi-bin/core/doctype/file_data/__init__.py rename to py/core/doctype/file_data/__init__.py diff --git a/cgi-bin/core/doctype/file_data/file_data.txt b/py/core/doctype/file_data/file_data.txt similarity index 100% rename from cgi-bin/core/doctype/file_data/file_data.txt rename to py/core/doctype/file_data/file_data.txt diff --git a/cgi-bin/core/doctype/file_group/__init__.py b/py/core/doctype/file_group/__init__.py similarity index 100% rename from cgi-bin/core/doctype/file_group/__init__.py rename to py/core/doctype/file_group/__init__.py diff --git a/cgi-bin/core/doctype/file_group/file_group.txt b/py/core/doctype/file_group/file_group.txt similarity index 100% rename from cgi-bin/core/doctype/file_group/file_group.txt rename to py/core/doctype/file_group/file_group.txt diff --git a/cgi-bin/core/doctype/letter_head/__init__.py b/py/core/doctype/letter_head/__init__.py similarity index 100% rename from cgi-bin/core/doctype/letter_head/__init__.py rename to py/core/doctype/letter_head/__init__.py diff --git a/cgi-bin/core/doctype/letter_head/letter_head.js b/py/core/doctype/letter_head/letter_head.js similarity index 100% rename from cgi-bin/core/doctype/letter_head/letter_head.js rename to py/core/doctype/letter_head/letter_head.js diff --git a/cgi-bin/core/doctype/letter_head/letter_head.py b/py/core/doctype/letter_head/letter_head.py similarity index 100% rename from cgi-bin/core/doctype/letter_head/letter_head.py rename to py/core/doctype/letter_head/letter_head.py diff --git a/cgi-bin/core/doctype/letter_head/letter_head.txt b/py/core/doctype/letter_head/letter_head.txt similarity index 100% rename from cgi-bin/core/doctype/letter_head/letter_head.txt rename to py/core/doctype/letter_head/letter_head.txt diff --git a/cgi-bin/core/doctype/module_def/__init__.py b/py/core/doctype/module_def/__init__.py similarity index 100% rename from cgi-bin/core/doctype/module_def/__init__.py rename to py/core/doctype/module_def/__init__.py diff --git a/cgi-bin/core/doctype/module_def/module_def.py b/py/core/doctype/module_def/module_def.py similarity index 100% rename from cgi-bin/core/doctype/module_def/module_def.py rename to py/core/doctype/module_def/module_def.py diff --git a/cgi-bin/core/doctype/module_def/module_def.txt b/py/core/doctype/module_def/module_def.txt similarity index 100% rename from cgi-bin/core/doctype/module_def/module_def.txt rename to py/core/doctype/module_def/module_def.txt diff --git a/cgi-bin/core/doctype/module_def_item/__init__.py b/py/core/doctype/module_def_item/__init__.py similarity index 100% rename from cgi-bin/core/doctype/module_def_item/__init__.py rename to py/core/doctype/module_def_item/__init__.py diff --git a/cgi-bin/core/doctype/module_def_item/module_def_item.txt b/py/core/doctype/module_def_item/module_def_item.txt similarity index 100% rename from cgi-bin/core/doctype/module_def_item/module_def_item.txt rename to py/core/doctype/module_def_item/module_def_item.txt diff --git a/cgi-bin/core/doctype/module_def_role/__init__.py b/py/core/doctype/module_def_role/__init__.py similarity index 100% rename from cgi-bin/core/doctype/module_def_role/__init__.py rename to py/core/doctype/module_def_role/__init__.py diff --git a/cgi-bin/core/doctype/module_def_role/module_def_role.txt b/py/core/doctype/module_def_role/module_def_role.txt similarity index 100% rename from cgi-bin/core/doctype/module_def_role/module_def_role.txt rename to py/core/doctype/module_def_role/module_def_role.txt diff --git a/cgi-bin/core/doctype/page/__init__.py b/py/core/doctype/page/__init__.py similarity index 100% rename from cgi-bin/core/doctype/page/__init__.py rename to py/core/doctype/page/__init__.py diff --git a/cgi-bin/core/doctype/page/page.py b/py/core/doctype/page/page.py similarity index 100% rename from cgi-bin/core/doctype/page/page.py rename to py/core/doctype/page/page.py diff --git a/cgi-bin/core/doctype/page/page.txt b/py/core/doctype/page/page.txt similarity index 100% rename from cgi-bin/core/doctype/page/page.txt rename to py/core/doctype/page/page.txt diff --git a/cgi-bin/core/doctype/page_role/__init__.py b/py/core/doctype/page_role/__init__.py similarity index 100% rename from cgi-bin/core/doctype/page_role/__init__.py rename to py/core/doctype/page_role/__init__.py diff --git a/cgi-bin/core/doctype/page_role/page_role.txt b/py/core/doctype/page_role/page_role.txt similarity index 100% rename from cgi-bin/core/doctype/page_role/page_role.txt rename to py/core/doctype/page_role/page_role.txt diff --git a/cgi-bin/core/doctype/page_template/__init__.py b/py/core/doctype/page_template/__init__.py similarity index 100% rename from cgi-bin/core/doctype/page_template/__init__.py rename to py/core/doctype/page_template/__init__.py diff --git a/cgi-bin/core/doctype/page_template/page_template.py b/py/core/doctype/page_template/page_template.py similarity index 100% rename from cgi-bin/core/doctype/page_template/page_template.py rename to py/core/doctype/page_template/page_template.py diff --git a/cgi-bin/core/doctype/page_template/page_template.txt b/py/core/doctype/page_template/page_template.txt similarity index 100% rename from cgi-bin/core/doctype/page_template/page_template.txt rename to py/core/doctype/page_template/page_template.txt diff --git a/cgi-bin/core/doctype/print_format/__init__.py b/py/core/doctype/print_format/__init__.py similarity index 100% rename from cgi-bin/core/doctype/print_format/__init__.py rename to py/core/doctype/print_format/__init__.py diff --git a/cgi-bin/core/doctype/print_format/print_format.txt b/py/core/doctype/print_format/print_format.txt similarity index 100% rename from cgi-bin/core/doctype/print_format/print_format.txt rename to py/core/doctype/print_format/print_format.txt diff --git a/cgi-bin/core/doctype/profile/__init__.py b/py/core/doctype/profile/__init__.py similarity index 100% rename from cgi-bin/core/doctype/profile/__init__.py rename to py/core/doctype/profile/__init__.py diff --git a/cgi-bin/core/doctype/profile/profile.js b/py/core/doctype/profile/profile.js similarity index 100% rename from cgi-bin/core/doctype/profile/profile.js rename to py/core/doctype/profile/profile.js diff --git a/cgi-bin/core/doctype/profile/profile.py b/py/core/doctype/profile/profile.py similarity index 100% rename from cgi-bin/core/doctype/profile/profile.py rename to py/core/doctype/profile/profile.py diff --git a/cgi-bin/core/doctype/profile/profile.txt b/py/core/doctype/profile/profile.txt similarity index 100% rename from cgi-bin/core/doctype/profile/profile.txt rename to py/core/doctype/profile/profile.txt diff --git a/cgi-bin/core/doctype/property_setter/__init__.py b/py/core/doctype/property_setter/__init__.py similarity index 100% rename from cgi-bin/core/doctype/property_setter/__init__.py rename to py/core/doctype/property_setter/__init__.py diff --git a/cgi-bin/core/doctype/property_setter/property_setter.comp.js b/py/core/doctype/property_setter/property_setter.comp.js similarity index 100% rename from cgi-bin/core/doctype/property_setter/property_setter.comp.js rename to py/core/doctype/property_setter/property_setter.comp.js diff --git a/cgi-bin/core/doctype/property_setter/property_setter.js b/py/core/doctype/property_setter/property_setter.js similarity index 100% rename from cgi-bin/core/doctype/property_setter/property_setter.js rename to py/core/doctype/property_setter/property_setter.js diff --git a/cgi-bin/core/doctype/property_setter/property_setter.py b/py/core/doctype/property_setter/property_setter.py similarity index 100% rename from cgi-bin/core/doctype/property_setter/property_setter.py rename to py/core/doctype/property_setter/property_setter.py diff --git a/cgi-bin/core/doctype/property_setter/property_setter.txt b/py/core/doctype/property_setter/property_setter.txt similarity index 100% rename from cgi-bin/core/doctype/property_setter/property_setter.txt rename to py/core/doctype/property_setter/property_setter.txt diff --git a/cgi-bin/core/doctype/role/__init__.py b/py/core/doctype/role/__init__.py similarity index 100% rename from cgi-bin/core/doctype/role/__init__.py rename to py/core/doctype/role/__init__.py diff --git a/cgi-bin/core/doctype/role/role.js b/py/core/doctype/role/role.js similarity index 100% rename from cgi-bin/core/doctype/role/role.js rename to py/core/doctype/role/role.js diff --git a/cgi-bin/core/doctype/role/role.txt b/py/core/doctype/role/role.txt similarity index 100% rename from cgi-bin/core/doctype/role/role.txt rename to py/core/doctype/role/role.txt diff --git a/cgi-bin/core/doctype/sandbox/__init__.py b/py/core/doctype/sandbox/__init__.py similarity index 100% rename from cgi-bin/core/doctype/sandbox/__init__.py rename to py/core/doctype/sandbox/__init__.py diff --git a/cgi-bin/core/doctype/sandbox/import_test.js b/py/core/doctype/sandbox/import_test.js similarity index 100% rename from cgi-bin/core/doctype/sandbox/import_test.js rename to py/core/doctype/sandbox/import_test.js diff --git a/cgi-bin/core/doctype/sandbox/my_trigger.sql b/py/core/doctype/sandbox/my_trigger.sql similarity index 100% rename from cgi-bin/core/doctype/sandbox/my_trigger.sql rename to py/core/doctype/sandbox/my_trigger.sql diff --git a/cgi-bin/core/doctype/sandbox/sandbox.js b/py/core/doctype/sandbox/sandbox.js similarity index 100% rename from cgi-bin/core/doctype/sandbox/sandbox.js rename to py/core/doctype/sandbox/sandbox.js diff --git a/cgi-bin/core/doctype/sandbox/sandbox.txt b/py/core/doctype/sandbox/sandbox.txt similarity index 100% rename from cgi-bin/core/doctype/sandbox/sandbox.txt rename to py/core/doctype/sandbox/sandbox.txt diff --git a/cgi-bin/core/doctype/search_criteria/__init__.py b/py/core/doctype/search_criteria/__init__.py similarity index 100% rename from cgi-bin/core/doctype/search_criteria/__init__.py rename to py/core/doctype/search_criteria/__init__.py diff --git a/cgi-bin/core/doctype/search_criteria/search_criteria.py b/py/core/doctype/search_criteria/search_criteria.py similarity index 100% rename from cgi-bin/core/doctype/search_criteria/search_criteria.py rename to py/core/doctype/search_criteria/search_criteria.py diff --git a/cgi-bin/core/doctype/search_criteria/search_criteria.txt b/py/core/doctype/search_criteria/search_criteria.txt similarity index 100% rename from cgi-bin/core/doctype/search_criteria/search_criteria.txt rename to py/core/doctype/search_criteria/search_criteria.txt diff --git a/cgi-bin/core/doctype/stylesheet/__init__.py b/py/core/doctype/stylesheet/__init__.py similarity index 100% rename from cgi-bin/core/doctype/stylesheet/__init__.py rename to py/core/doctype/stylesheet/__init__.py diff --git a/cgi-bin/core/doctype/stylesheet/stylesheet.py b/py/core/doctype/stylesheet/stylesheet.py similarity index 100% rename from cgi-bin/core/doctype/stylesheet/stylesheet.py rename to py/core/doctype/stylesheet/stylesheet.py diff --git a/cgi-bin/core/doctype/stylesheet/stylesheet.txt b/py/core/doctype/stylesheet/stylesheet.txt similarity index 100% rename from cgi-bin/core/doctype/stylesheet/stylesheet.txt rename to py/core/doctype/stylesheet/stylesheet.txt diff --git a/cgi-bin/core/doctype/system_console/__init__.py b/py/core/doctype/system_console/__init__.py similarity index 100% rename from cgi-bin/core/doctype/system_console/__init__.py rename to py/core/doctype/system_console/__init__.py diff --git a/cgi-bin/core/doctype/system_console/system_console.comp.js b/py/core/doctype/system_console/system_console.comp.js similarity index 100% rename from cgi-bin/core/doctype/system_console/system_console.comp.js rename to py/core/doctype/system_console/system_console.comp.js diff --git a/cgi-bin/core/doctype/system_console/system_console.js b/py/core/doctype/system_console/system_console.js similarity index 100% rename from cgi-bin/core/doctype/system_console/system_console.js rename to py/core/doctype/system_console/system_console.js diff --git a/cgi-bin/core/doctype/system_console/system_console.py b/py/core/doctype/system_console/system_console.py similarity index 100% rename from cgi-bin/core/doctype/system_console/system_console.py rename to py/core/doctype/system_console/system_console.py diff --git a/cgi-bin/core/doctype/system_console/system_console.txt b/py/core/doctype/system_console/system_console.txt similarity index 100% rename from cgi-bin/core/doctype/system_console/system_console.txt rename to py/core/doctype/system_console/system_console.txt diff --git a/cgi-bin/core/doctype/table_mapper_detail/__init__.py b/py/core/doctype/table_mapper_detail/__init__.py similarity index 100% rename from cgi-bin/core/doctype/table_mapper_detail/__init__.py rename to py/core/doctype/table_mapper_detail/__init__.py diff --git a/cgi-bin/core/doctype/table_mapper_detail/table_mapper_detail.txt b/py/core/doctype/table_mapper_detail/table_mapper_detail.txt similarity index 100% rename from cgi-bin/core/doctype/table_mapper_detail/table_mapper_detail.txt rename to py/core/doctype/table_mapper_detail/table_mapper_detail.txt diff --git a/cgi-bin/core/doctype/tag/__init__.py b/py/core/doctype/tag/__init__.py similarity index 100% rename from cgi-bin/core/doctype/tag/__init__.py rename to py/core/doctype/tag/__init__.py diff --git a/cgi-bin/core/doctype/tag/tag.txt b/py/core/doctype/tag/tag.txt similarity index 100% rename from cgi-bin/core/doctype/tag/tag.txt rename to py/core/doctype/tag/tag.txt diff --git a/cgi-bin/core/doctype/userrole/__init__.py b/py/core/doctype/userrole/__init__.py similarity index 100% rename from cgi-bin/core/doctype/userrole/__init__.py rename to py/core/doctype/userrole/__init__.py diff --git a/cgi-bin/core/doctype/userrole/userrole.txt b/py/core/doctype/userrole/userrole.txt similarity index 100% rename from cgi-bin/core/doctype/userrole/userrole.txt rename to py/core/doctype/userrole/userrole.txt diff --git a/cgi-bin/core/page/__init__.py b/py/core/page/__init__.py similarity index 100% rename from cgi-bin/core/page/__init__.py rename to py/core/page/__init__.py diff --git a/cgi-bin/core/page/login_page/__init__.py b/py/core/page/login_page/__init__.py similarity index 100% rename from cgi-bin/core/page/login_page/__init__.py rename to py/core/page/login_page/__init__.py diff --git a/cgi-bin/core/page/login_page/login_page.html b/py/core/page/login_page/login_page.html similarity index 100% rename from cgi-bin/core/page/login_page/login_page.html rename to py/core/page/login_page/login_page.html diff --git a/cgi-bin/core/page/login_page/login_page.js b/py/core/page/login_page/login_page.js similarity index 100% rename from cgi-bin/core/page/login_page/login_page.js rename to py/core/page/login_page/login_page.js diff --git a/cgi-bin/core/page/login_page/login_page.txt b/py/core/page/login_page/login_page.txt similarity index 100% rename from cgi-bin/core/page/login_page/login_page.txt rename to py/core/page/login_page/login_page.txt diff --git a/cgi-bin/core/page/login_page/login_page_static.html b/py/core/page/login_page/login_page_static.html similarity index 100% rename from cgi-bin/core/page/login_page/login_page_static.html rename to py/core/page/login_page/login_page_static.html diff --git a/cgi-bin/webnotes/__init__.py b/py/webnotes/__init__.py similarity index 100% rename from cgi-bin/webnotes/__init__.py rename to py/webnotes/__init__.py diff --git a/cgi-bin/webnotes/auth.py b/py/webnotes/auth.py similarity index 100% rename from cgi-bin/webnotes/auth.py rename to py/webnotes/auth.py diff --git a/cgi-bin/webnotes/db.py b/py/webnotes/db.py similarity index 100% rename from cgi-bin/webnotes/db.py rename to py/webnotes/db.py diff --git a/cgi-bin/webnotes/defs_template.py b/py/webnotes/defs_template.py similarity index 100% rename from cgi-bin/webnotes/defs_template.py rename to py/webnotes/defs_template.py diff --git a/cgi-bin/webnotes/handler.py b/py/webnotes/handler.py similarity index 100% rename from cgi-bin/webnotes/handler.py rename to py/webnotes/handler.py diff --git a/cgi-bin/webnotes/install_lib/__init__.py b/py/webnotes/install_lib/__init__.py similarity index 100% rename from cgi-bin/webnotes/install_lib/__init__.py rename to py/webnotes/install_lib/__init__.py diff --git a/cgi-bin/webnotes/install_lib/db_init.py b/py/webnotes/install_lib/db_init.py similarity index 100% rename from cgi-bin/webnotes/install_lib/db_init.py rename to py/webnotes/install_lib/db_init.py diff --git a/cgi-bin/webnotes/install_lib/install.py b/py/webnotes/install_lib/install.py similarity index 100% rename from cgi-bin/webnotes/install_lib/install.py rename to py/webnotes/install_lib/install.py diff --git a/cgi-bin/webnotes/model/__init__.py b/py/webnotes/model/__init__.py similarity index 100% rename from cgi-bin/webnotes/model/__init__.py rename to py/webnotes/model/__init__.py diff --git a/cgi-bin/webnotes/model/code.py b/py/webnotes/model/code.py similarity index 100% rename from cgi-bin/webnotes/model/code.py rename to py/webnotes/model/code.py diff --git a/cgi-bin/webnotes/model/db_schema.py b/py/webnotes/model/db_schema.py similarity index 100% rename from cgi-bin/webnotes/model/db_schema.py rename to py/webnotes/model/db_schema.py diff --git a/cgi-bin/webnotes/model/doc.py b/py/webnotes/model/doc.py similarity index 100% rename from cgi-bin/webnotes/model/doc.py rename to py/webnotes/model/doc.py diff --git a/cgi-bin/webnotes/model/doclist.py b/py/webnotes/model/doclist.py similarity index 100% rename from cgi-bin/webnotes/model/doclist.py rename to py/webnotes/model/doclist.py diff --git a/cgi-bin/webnotes/model/doctype.py b/py/webnotes/model/doctype.py similarity index 100% rename from cgi-bin/webnotes/model/doctype.py rename to py/webnotes/model/doctype.py diff --git a/cgi-bin/webnotes/model/import_docs.py b/py/webnotes/model/import_docs.py similarity index 100% rename from cgi-bin/webnotes/model/import_docs.py rename to py/webnotes/model/import_docs.py diff --git a/cgi-bin/webnotes/model/meta.py b/py/webnotes/model/meta.py similarity index 100% rename from cgi-bin/webnotes/model/meta.py rename to py/webnotes/model/meta.py diff --git a/cgi-bin/webnotes/model/modules.py b/py/webnotes/model/modules.py similarity index 100% rename from cgi-bin/webnotes/model/modules.py rename to py/webnotes/model/modules.py diff --git a/cgi-bin/webnotes/model/sql_sync.py b/py/webnotes/model/sql_sync.py similarity index 100% rename from cgi-bin/webnotes/model/sql_sync.py rename to py/webnotes/model/sql_sync.py diff --git a/cgi-bin/webnotes/model/triggers.py b/py/webnotes/model/triggers.py similarity index 100% rename from cgi-bin/webnotes/model/triggers.py rename to py/webnotes/model/triggers.py diff --git a/cgi-bin/webnotes/model/utils.py b/py/webnotes/model/utils.py similarity index 100% rename from cgi-bin/webnotes/model/utils.py rename to py/webnotes/model/utils.py diff --git a/cgi-bin/webnotes/modules/__init__.py b/py/webnotes/modules/__init__.py similarity index 100% rename from cgi-bin/webnotes/modules/__init__.py rename to py/webnotes/modules/__init__.py diff --git a/cgi-bin/webnotes/modules/export_module.py b/py/webnotes/modules/export_module.py similarity index 100% rename from cgi-bin/webnotes/modules/export_module.py rename to py/webnotes/modules/export_module.py diff --git a/cgi-bin/webnotes/modules/module_manager.py b/py/webnotes/modules/module_manager.py similarity index 100% rename from cgi-bin/webnotes/modules/module_manager.py rename to py/webnotes/modules/module_manager.py diff --git a/cgi-bin/webnotes/modules/patch.py b/py/webnotes/modules/patch.py similarity index 100% rename from cgi-bin/webnotes/modules/patch.py rename to py/webnotes/modules/patch.py diff --git a/cgi-bin/webnotes/modules/utils.py b/py/webnotes/modules/utils.py similarity index 100% rename from cgi-bin/webnotes/modules/utils.py rename to py/webnotes/modules/utils.py diff --git a/cgi-bin/webnotes/multi_tenant/__init__.py b/py/webnotes/multi_tenant/__init__.py similarity index 100% rename from cgi-bin/webnotes/multi_tenant/__init__.py rename to py/webnotes/multi_tenant/__init__.py diff --git a/cgi-bin/webnotes/multi_tenant/query_parser.py b/py/webnotes/multi_tenant/query_parser.py similarity index 100% rename from cgi-bin/webnotes/multi_tenant/query_parser.py rename to py/webnotes/multi_tenant/query_parser.py diff --git a/cgi-bin/webnotes/multi_tenant/setup.py b/py/webnotes/multi_tenant/setup.py similarity index 100% rename from cgi-bin/webnotes/multi_tenant/setup.py rename to py/webnotes/multi_tenant/setup.py diff --git a/cgi-bin/webnotes/profile.py b/py/webnotes/profile.py similarity index 100% rename from cgi-bin/webnotes/profile.py rename to py/webnotes/profile.py diff --git a/cgi-bin/webnotes/session_cache.py b/py/webnotes/session_cache.py similarity index 100% rename from cgi-bin/webnotes/session_cache.py rename to py/webnotes/session_cache.py diff --git a/cgi-bin/webnotes/tests.py b/py/webnotes/tests.py similarity index 100% rename from cgi-bin/webnotes/tests.py rename to py/webnotes/tests.py diff --git a/cgi-bin/webnotes/tests/__init__.py b/py/webnotes/tests/__init__.py similarity index 100% rename from cgi-bin/webnotes/tests/__init__.py rename to py/webnotes/tests/__init__.py diff --git a/cgi-bin/webnotes/tests/modules.py b/py/webnotes/tests/modules.py similarity index 100% rename from cgi-bin/webnotes/tests/modules.py rename to py/webnotes/tests/modules.py diff --git a/cgi-bin/webnotes/utils/__init__.py b/py/webnotes/utils/__init__.py similarity index 100% rename from cgi-bin/webnotes/utils/__init__.py rename to py/webnotes/utils/__init__.py diff --git a/cgi-bin/webnotes/utils/archive.py b/py/webnotes/utils/archive.py similarity index 100% rename from cgi-bin/webnotes/utils/archive.py rename to py/webnotes/utils/archive.py diff --git a/cgi-bin/webnotes/utils/backups.py b/py/webnotes/utils/backups.py similarity index 100% rename from cgi-bin/webnotes/utils/backups.py rename to py/webnotes/utils/backups.py diff --git a/cgi-bin/webnotes/utils/cache.py b/py/webnotes/utils/cache.py similarity index 100% rename from cgi-bin/webnotes/utils/cache.py rename to py/webnotes/utils/cache.py diff --git a/cgi-bin/webnotes/utils/email_lib/__init__.py b/py/webnotes/utils/email_lib/__init__.py similarity index 100% rename from cgi-bin/webnotes/utils/email_lib/__init__.py rename to py/webnotes/utils/email_lib/__init__.py diff --git a/cgi-bin/webnotes/utils/email_lib/form_email.py b/py/webnotes/utils/email_lib/form_email.py similarity index 100% rename from cgi-bin/webnotes/utils/email_lib/form_email.py rename to py/webnotes/utils/email_lib/form_email.py diff --git a/cgi-bin/webnotes/utils/email_lib/html2text.py b/py/webnotes/utils/email_lib/html2text.py similarity index 100% rename from cgi-bin/webnotes/utils/email_lib/html2text.py rename to py/webnotes/utils/email_lib/html2text.py diff --git a/cgi-bin/webnotes/utils/email_lib/receive.py b/py/webnotes/utils/email_lib/receive.py similarity index 100% rename from cgi-bin/webnotes/utils/email_lib/receive.py rename to py/webnotes/utils/email_lib/receive.py diff --git a/cgi-bin/webnotes/utils/email_lib/send.py b/py/webnotes/utils/email_lib/send.py similarity index 100% rename from cgi-bin/webnotes/utils/email_lib/send.py rename to py/webnotes/utils/email_lib/send.py diff --git a/cgi-bin/webnotes/utils/encrypt.py b/py/webnotes/utils/encrypt.py similarity index 100% rename from cgi-bin/webnotes/utils/encrypt.py rename to py/webnotes/utils/encrypt.py diff --git a/cgi-bin/webnotes/utils/file_manager.py b/py/webnotes/utils/file_manager.py similarity index 100% rename from cgi-bin/webnotes/utils/file_manager.py rename to py/webnotes/utils/file_manager.py diff --git a/cgi-bin/webnotes/utils/jslib/jsdependency.py b/py/webnotes/utils/jslib/jsdependency.py similarity index 100% rename from cgi-bin/webnotes/utils/jslib/jsdependency.py rename to py/webnotes/utils/jslib/jsdependency.py diff --git a/cgi-bin/webnotes/utils/jslib/jsmin.py b/py/webnotes/utils/jslib/jsmin.py similarity index 100% rename from cgi-bin/webnotes/utils/jslib/jsmin.py rename to py/webnotes/utils/jslib/jsmin.py diff --git a/cgi-bin/webnotes/utils/jslib/jsnamespace.py b/py/webnotes/utils/jslib/jsnamespace.py similarity index 100% rename from cgi-bin/webnotes/utils/jslib/jsnamespace.py rename to py/webnotes/utils/jslib/jsnamespace.py diff --git a/cgi-bin/webnotes/utils/jslib/jstimestamp.py b/py/webnotes/utils/jslib/jstimestamp.py similarity index 100% rename from cgi-bin/webnotes/utils/jslib/jstimestamp.py rename to py/webnotes/utils/jslib/jstimestamp.py diff --git a/cgi-bin/webnotes/utils/nestedset.py b/py/webnotes/utils/nestedset.py similarity index 100% rename from cgi-bin/webnotes/utils/nestedset.py rename to py/webnotes/utils/nestedset.py diff --git a/cgi-bin/webnotes/utils/scheduler.py b/py/webnotes/utils/scheduler.py similarity index 100% rename from cgi-bin/webnotes/utils/scheduler.py rename to py/webnotes/utils/scheduler.py diff --git a/cgi-bin/webnotes/utils/sitemap.py b/py/webnotes/utils/sitemap.py similarity index 100% rename from cgi-bin/webnotes/utils/sitemap.py rename to py/webnotes/utils/sitemap.py diff --git a/cgi-bin/webnotes/utils/transfer.py b/py/webnotes/utils/transfer.py similarity index 100% rename from cgi-bin/webnotes/utils/transfer.py rename to py/webnotes/utils/transfer.py diff --git a/cgi-bin/webnotes/utils/webservice.py b/py/webnotes/utils/webservice.py similarity index 100% rename from cgi-bin/webnotes/utils/webservice.py rename to py/webnotes/utils/webservice.py diff --git a/cgi-bin/webnotes/widgets/__init__.py b/py/webnotes/widgets/__init__.py similarity index 100% rename from cgi-bin/webnotes/widgets/__init__.py rename to py/webnotes/widgets/__init__.py diff --git a/cgi-bin/webnotes/widgets/auto_master.py b/py/webnotes/widgets/auto_master.py similarity index 100% rename from cgi-bin/webnotes/widgets/auto_master.py rename to py/webnotes/widgets/auto_master.py diff --git a/cgi-bin/webnotes/widgets/event.py b/py/webnotes/widgets/event.py similarity index 100% rename from cgi-bin/webnotes/widgets/event.py rename to py/webnotes/widgets/event.py diff --git a/cgi-bin/webnotes/widgets/follow.py b/py/webnotes/widgets/follow.py similarity index 100% rename from cgi-bin/webnotes/widgets/follow.py rename to py/webnotes/widgets/follow.py diff --git a/cgi-bin/webnotes/widgets/form.py b/py/webnotes/widgets/form.py similarity index 100% rename from cgi-bin/webnotes/widgets/form.py rename to py/webnotes/widgets/form.py diff --git a/cgi-bin/webnotes/widgets/menus.py b/py/webnotes/widgets/menus.py similarity index 100% rename from cgi-bin/webnotes/widgets/menus.py rename to py/webnotes/widgets/menus.py diff --git a/cgi-bin/webnotes/widgets/page.py b/py/webnotes/widgets/page.py similarity index 100% rename from cgi-bin/webnotes/widgets/page.py rename to py/webnotes/widgets/page.py diff --git a/cgi-bin/webnotes/widgets/page_body.py b/py/webnotes/widgets/page_body.py similarity index 100% rename from cgi-bin/webnotes/widgets/page_body.py rename to py/webnotes/widgets/page_body.py diff --git a/cgi-bin/webnotes/widgets/query_builder.py b/py/webnotes/widgets/query_builder.py similarity index 100% rename from cgi-bin/webnotes/widgets/query_builder.py rename to py/webnotes/widgets/query_builder.py diff --git a/cgi-bin/webnotes/widgets/search.py b/py/webnotes/widgets/search.py similarity index 100% rename from cgi-bin/webnotes/widgets/search.py rename to py/webnotes/widgets/search.py diff --git a/cgi-bin/webnotes/widgets/tags.py b/py/webnotes/widgets/tags.py similarity index 100% rename from cgi-bin/webnotes/widgets/tags.py rename to py/webnotes/widgets/tags.py diff --git a/cgi-bin/webnotes/widgets/todo.py b/py/webnotes/widgets/todo.py similarity index 100% rename from cgi-bin/webnotes/widgets/todo.py rename to py/webnotes/widgets/todo.py diff --git a/robots.txt b/robots.txt deleted file mode 100644 index 40ebc06360..0000000000 --- a/robots.txt +++ /dev/null @@ -1,5 +0,0 @@ -User-agent: * - -Disallow: /cgi-bin/ # Code files -Disallow: /backups/ # Backups -Disallow: /data/ \ No newline at end of file diff --git a/test.html b/test.html deleted file mode 100644 index aa5d63688f..0000000000 --- a/test.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - loaded - - From 0abfaf1180f94c05585d068cf1970337ef2ea3bf Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 7 Sep 2011 17:27:20 +0530 Subject: [PATCH 05/26] version 2 --- attribution.md | 26 ++ conf/Framework.sql | 245 ++++++++++ conf/__init__.py | 0 conf/_conf.py | 12 + conf/apache.conf | 35 ++ conf/app.js | 20 + conf/conf.py | 11 + conf/index.cgi | 21 + css/base.css | 389 ++++++++++++++++ css/layout.css | 58 +++ css/skeleton.css | 236 ++++++++++ css/ui/overlay.css | 82 ++++ css/ui/status_bar.css | 19 + images/icons/folder.gif | Bin 0 -> 996 bytes images/icons/icons.png | Bin 0 -> 53108 bytes images/icons/wntoolbar-icons.png | Bin 0 -> 2762 bytes js/build.json | 19 + js/core.js | 33 ++ js/core.min.js | 55 +++ js/legacy/build.json | 68 +++ js/lib/history/history.adapter.jquery.js | 1 + js/lib/history/history.html4.js | 1 + js/lib/history/history.js | 1 + js/lib/history/history.min.js | 19 + js/lib/jquery.min.js | 18 + js/lib/json2.js | 480 ++++++++++++++++++++ js/lib/superfish/css/superfish-vertical.css | 23 + js/lib/superfish/css/superfish.css | 136 ++++++ js/lib/superfish/hoverIntent.js | 84 ++++ js/lib/superfish/images/arrows-ffffff.png | Bin 0 -> 244 bytes js/lib/superfish/images/shadow.png | Bin 0 -> 1698 bytes js/lib/superfish/make_superfish.js | 34 ++ js/lib/superfish/superfish.js | 121 +++++ js/lib/superfish/superfish.min.js | 171 +++++++ js/wn/assets.js | 94 ++++ js/wn/dom.js | 49 ++ js/wn/history.js | 15 + js/wn/page.js | 28 ++ js/wn/provide.js | 17 + js/wn/require.js | 15 + js/wn/ui/overlay.js | 24 + js/wn/ui/status_bar.js | 22 + js/wn/xmlhttp.js | 36 ++ py/__init__.py | 0 py/build/__init__.py | 21 + py/build/__main__.py | 5 + py/build/bundle.py | 142 ++++++ py/build/markdown2_extn.py | 34 ++ py/build/minify.py | 215 +++++++++ py/build/nav.py | 67 +++ py/build/project.py | 83 ++++ py/build/timestamps.py | 147 ++++++ py/common.py | 13 + py/core/.no_timestamps | 0 py/tests.py | 12 + py/watch.py | 11 + py/webnotes/.no_timestamps | 0 57 files changed, 3468 insertions(+) create mode 100644 attribution.md create mode 100644 conf/Framework.sql create mode 100644 conf/__init__.py create mode 100644 conf/_conf.py create mode 100644 conf/apache.conf create mode 100644 conf/app.js create mode 100644 conf/conf.py create mode 100755 conf/index.cgi create mode 100755 css/base.css create mode 100755 css/layout.css create mode 100755 css/skeleton.css create mode 100644 css/ui/overlay.css create mode 100644 css/ui/status_bar.css create mode 100644 images/icons/folder.gif create mode 100644 images/icons/icons.png create mode 100644 images/icons/wntoolbar-icons.png create mode 100644 js/build.json create mode 100644 js/core.js create mode 100644 js/core.min.js create mode 100644 js/legacy/build.json create mode 100644 js/lib/history/history.adapter.jquery.js create mode 100644 js/lib/history/history.html4.js create mode 100644 js/lib/history/history.js create mode 100644 js/lib/history/history.min.js create mode 100644 js/lib/jquery.min.js create mode 100644 js/lib/json2.js create mode 100644 js/lib/superfish/css/superfish-vertical.css create mode 100644 js/lib/superfish/css/superfish.css create mode 100644 js/lib/superfish/hoverIntent.js create mode 100644 js/lib/superfish/images/arrows-ffffff.png create mode 100644 js/lib/superfish/images/shadow.png create mode 100644 js/lib/superfish/make_superfish.js create mode 100644 js/lib/superfish/superfish.js create mode 100644 js/lib/superfish/superfish.min.js create mode 100644 js/wn/assets.js create mode 100644 js/wn/dom.js create mode 100644 js/wn/history.js create mode 100644 js/wn/page.js create mode 100644 js/wn/provide.js create mode 100644 js/wn/require.js create mode 100644 js/wn/ui/overlay.js create mode 100644 js/wn/ui/status_bar.js create mode 100644 js/wn/xmlhttp.js create mode 100644 py/__init__.py create mode 100644 py/build/__init__.py create mode 100644 py/build/__main__.py create mode 100644 py/build/bundle.py create mode 100644 py/build/markdown2_extn.py create mode 100644 py/build/minify.py create mode 100644 py/build/nav.py create mode 100644 py/build/project.py create mode 100644 py/build/timestamps.py create mode 100644 py/common.py create mode 100644 py/core/.no_timestamps create mode 100644 py/tests.py create mode 100644 py/watch.py create mode 100644 py/webnotes/.no_timestamps diff --git a/attribution.md b/attribution.md new file mode 100644 index 0000000000..0be7c628f4 --- /dev/null +++ b/attribution.md @@ -0,0 +1,26 @@ +# Attribution + +Following libraries have been used in wnframework + +## Python + +- Jinja2 +- Markdown2 +- Jinja2 Markdown2 extenion +- Redis (?) + +## Javascript + +- JSON2 +- JQuery +- JQPlot +- History +- Suckerfish (menu) + +## CSS + +- Skeleton CSS: +- CSS3 Overlay: + [https://github.com/LearnBoost/CSS3-Overlay/](https://github.com/LearnBoost/CSS3-Overlay/) + [http://blog.learnboost.com/blog/a-css3-overlay-system/](http://blog.learnboost.com/blog/a-css3-overlay-system/) + diff --git a/conf/Framework.sql b/conf/Framework.sql new file mode 100644 index 0000000000..27faa19913 --- /dev/null +++ b/conf/Framework.sql @@ -0,0 +1,245 @@ +-- Core Elements to install WNFramework +-- To be called from install.py + + +-- +-- Table structure for table `__DocTypeCache` +-- + +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 */; + +-- +-- Table structure for table `__SessionCache` +-- + +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 */; + + + +-- +-- Table structure for table `tabDocField` +-- + +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 */; + +-- +-- Table structure for table `tabDocFormat` +-- + +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 */; + +-- +-- Table structure for table `tabDocPerm` +-- + +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 */; + +-- +-- Table structure for table `tabDocType` +-- + +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 */; + +-- +-- Table structure for table `tabSeries` +-- + +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 */; + + +-- +-- Table structure for table `tabSessions` +-- + +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 */; + + +-- +-- Table structure for table `tabSingles` +-- + +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; + diff --git a/conf/__init__.py b/conf/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/conf/_conf.py b/conf/_conf.py new file mode 100644 index 0000000000..5343a27d96 --- /dev/null +++ b/conf/_conf.py @@ -0,0 +1,12 @@ +# Main Configuration File + +# Copy this into conf.py +# ---------------------- + +# Index URL +# --------- + +# URL path to index.html +# if you are installing within a folder, add the folderpath +index_path = '/' + diff --git a/conf/apache.conf b/conf/apache.conf new file mode 100644 index 0000000000..a5bcd4bd05 --- /dev/null +++ b/conf/apache.conf @@ -0,0 +1,35 @@ +# Sample httpd.conf extension ot start wnframework + +# Port on which you want to run wnframework +Listen 8080 + + + + # Set your root folder here + DocumentRoot /var/www/html/ + + + AllowOverride All + Order allow,deny + Allow from all + + # enable direct execution of .py files + Options +ExecCGI + #AddHandler cgi-script .cgi + AddHandler cgi-script .py + + DirectoryIndex index.html + + RewriteEngine On + + # all model calls will be redirected to model.py + # to call a model - mysite/models/type/name eg. mysite.com/models/Organization/WebNotes + RewriteRule /models/(.*)$ /lib/model.py/$1 [L,QSA] + + # all page calls will be redircted to page.py + # page/home + RewriteRule /pages/(.*)$ /lib/page.py/$1 [L,QSA] + + + + \ No newline at end of file diff --git a/conf/app.js b/conf/app.js new file mode 100644 index 0000000000..a2ca08dcd8 --- /dev/null +++ b/conf/app.js @@ -0,0 +1,20 @@ +wn.require('lib/js/lib/jquery.min.js'); +wn.require('lib/js/wn/ui/status_bar.js'); + +wn.sb = new wn.ui.StatusBar(); +wn.sb.set_value(15); +// for datepicker +wn.require('lib/js/legacy/jquery/jquery-ui.min.js') +wn.sb.set_value(25); + +wn.require('lib/js/legacy/wnf.compressed.js'); +wn.sb.set_value(60); + +wn.require('lib/js/legacy/form.compressed.js'); +wn.require('lib/js/legacy/report.compressed.js'); +wn.require('lib/css/legacy/default.css'); +wn.sb.set_value(80); + +$(document).bind('ready', function() { + startup(); +}); \ No newline at end of file diff --git a/conf/conf.py b/conf/conf.py new file mode 100644 index 0000000000..777006a3aa --- /dev/null +++ b/conf/conf.py @@ -0,0 +1,11 @@ +# Main Configuration File + +# Copy this into conf.py +# ---------------------- + +# Index URL +# --------- + +# URL path to index.html +# if you are installing within a folder, add the folderpath +index_path = '/' \ No newline at end of file diff --git a/conf/index.cgi b/conf/index.cgi new file mode 100755 index 0000000000..d203f3061d --- /dev/null +++ b/conf/index.cgi @@ -0,0 +1,21 @@ +#!/usr/bin/python +# main handler file + +import cgi, cgitb, os, sys +cgitb.enable() + +# import libs +sys.path.append('lib/py') +sys.path.append('erpnext') + +import webnotes +import webnotes.defs + +webnotes.form = cgi.FieldStorage() + +# make the form_dict +for key in webnotes.form.keys(): + webnotes.form_dict[key] = webnotes.form.getvalue(key) + +# pass on to legacy handler +import webnotes.handler diff --git a/css/base.css b/css/base.css new file mode 100755 index 0000000000..ac345506db --- /dev/null +++ b/css/base.css @@ -0,0 +1,389 @@ +/* +* Skeleton V1.1 +* Copyright 2011, Dave Gamache +* www.getskeleton.com +* Free to use under the MIT license. +* http://www.opensource.org/licenses/mit-license.php +* 8/17/2011 +*/ + + +/* Table of Content +================================================== + #Reset & Basics + #Basic Styles + #Site Styles + #Typography + #Links + #Lists + #Images + #Buttons + #Tabs + #Forms + #Misc */ + + +/* #Reset & Basics (Inspired by E. Meyers) +================================================== */ + html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; } + article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { + display: block; } + body { + line-height: 1; } + ol, ul { + list-style: none; } + blockquote, q { + quotes: none; } + blockquote:before, blockquote:after, + q:before, q:after { + content: ''; + content: none; } + table { + border-collapse: collapse; + border-spacing: 0; } + + +/* #Basic Styles +================================================== */ + body { + background: #fff; + font: 14px/21px "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; + color: #444; + -webkit-font-smoothing: antialiased; /* Fix for webkit rendering */ + -webkit-text-size-adjust: 100%; + } + + +/* #Typography +================================================== */ + h1, h2, h3, h4, h5, h6 { + color: #181818; + font-family: "Georgia", "Times New Roman", Helvetica, Arial, sans-serif; + font-weight: normal; } + h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { font-weight: inherit; } + h1 { font-size: 46px; line-height: 55px; margin-bottom: 14px;} + h2 { font-size: 35px; line-height: 40px; margin-bottom: 10px; } + h3 { font-size: 28px; line-height: 34px; margin-bottom: 8px; } + h4 { font-size: 21px; line-height: 30px; margin-bottom: 4px; } + h5 { font-size: 17px; line-height: 24px; } + h6 { font-size: 14px; line-height: 21px; } + .subheader { color: #777; } + + p { margin: 0 0 20px 0; } + p img { margin: 0; } + p.lead { font-size: 21px; line-height: 27px; color: #777; } + + em { font-style: italic; } + strong { font-weight: bold; color: #333; } + small { font-size: 80%; } + +/* Blockquotes */ + blockquote, blockquote p { font-size: 17px; line-height: 24px; color: #777; font-style: italic; } + blockquote { margin: 0 0 20px; padding: 9px 20px 0 19px; border-left: 1px solid #ddd; } + blockquote cite { display: block; font-size: 12px; color: #555; } + blockquote cite:before { content: "\2014 \0020"; } + blockquote cite a, blockquote cite a:visited, blockquote cite a:visited { color: #555; } + + hr { border: solid #ddd; border-width: 1px 0 0; clear: both; margin: 10px 0 30px; height: 0; } + + +/* #Links +================================================== */ + a, a:visited { color: #333; text-decoration: underline; outline: 0; } + a:hover, a:focus { color: #000; } + p a, p a:visited { line-height: inherit; } + + +/* #Lists +================================================== */ + ul, ol { margin-bottom: 20px; } + ul { list-style: none outside; } + ol { list-style: decimal; } + ol, ul.square, ul.circle, ul.disc { margin-left: 30px; } + ul.square { list-style: square outside; } + ul.circle { list-style: circle outside; } + ul.disc { list-style: disc outside; } + ul ul, ul ol, + ol ol, ol ul { margin: 4px 0 5px 30px; font-size: 90%; } + ul ul li, ul ol li, + ol ol li, ol ul li { margin-bottom: 6px; } + li { line-height: 18px; margin-bottom: 12px; } + ul.large li { line-height: 21px; } + li p { line-height: 21px; } + +/* #Images +================================================== */ + + img.scale-with-grid { + max-width: 100%; + height: auto; } + + +/* #Buttons +================================================== */ + + a.button, + button, + input[type="submit"], + input[type="reset"], + input[type="button"] { + background: #eee; /* Old browsers */ + background: -moz-linear-gradient(top, rgba(255,255,255,.2) 0%, rgba(0,0,0,.2) 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.2)), color-stop(100%,rgba(0,0,0,.2))); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* Opera11.10+ */ + background: -ms-linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* IE10+ */ + background: linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* W3C */ + border: 1px solid #aaa; + border-top: 1px solid #ccc; + border-left: 1px solid #ccc; + padding: 4px 12px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + color: #444; + display: inline-block; + font-size: 11px; + font-weight: bold; + text-decoration: none; + text-shadow: 0 1px rgba(255, 255, 255, .75); + cursor: pointer; + margin-bottom: 20px; + line-height: 21px; + font-family: "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; } + + a.button:hover, + button:hover, + input[type="submit"]:hover, + input[type="reset"]:hover, + input[type="button"]:hover { + color: #222; + background: #ddd; /* Old browsers */ + background: -moz-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.3)), color-stop(100%,rgba(0,0,0,.3))); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* Opera11.10+ */ + background: -ms-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* IE10+ */ + background: linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* W3C */ + border: 1px solid #888; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; } + + a.button:active, + button:active, + input[type="submit"]:active, + input[type="reset"]:active, + input[type="button"]:active { + border: 1px solid #666; + background: #ccc; /* Old browsers */ + background: -moz-linear-gradient(top, rgba(255,255,255,.35) 0%, rgba(10,10,10,.4) 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.35)), color-stop(100%,rgba(10,10,10,.4))); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* Opera11.10+ */ + background: -ms-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* IE10+ */ + background: linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* W3C */ } + + .button.full-width, + button.full-width, + input[type="submit"].full-width, + input[type="reset"].full-width, + input[type="button"].full-width { + width: 100%; + padding-left: 0 !important; + padding-right: 0 !important; + text-align: center; } + + +/* #Tabs (activate in tabs.js) +================================================== */ + ul.tabs { + display: block; + margin: 0 0 20px 0; + padding: 0; + border-bottom: solid 1px #ddd; } + ul.tabs li { + display: block; + width: auto; + height: 30px; + padding: 0; + float: left; + margin-bottom: 0; } + ul.tabs li a { + display: block; + text-decoration: none; + width: auto; + height: 29px; + padding: 0px 20px; + line-height: 30px; + border: solid 1px #ddd; + border-width: 1px 1px 0 0; + margin: 0; + background: #f5f5f5; + font-size: 13px; } + ul.tabs li a.active { + background: #fff; + height: 30px; + position: relative; + top: -4px; + padding-top: 4px; + border-left-width: 1px; + margin: 0 0 0 -1px; + color: #111; + -moz-border-radius-topleft: 2px; + -webkit-border-top-left-radius: 2px; + border-top-left-radius: 2px; + -moz-border-radius-topright: 2px; + -webkit-border-top-right-radius: 2px; + border-top-right-radius: 2px; } + ul.tabs li:first-child a.active { + margin-left: 0; } + ul.tabs li:first-child a { + border-width: 1px 1px 0 1px; + -moz-border-radius-topleft: 2px; + -webkit-border-top-left-radius: 2px; + border-top-left-radius: 2px; } + ul.tabs li:last-child a { + -moz-border-radius-topright: 2px; + -webkit-border-top-right-radius: 2px; + border-top-right-radius: 2px; } + + ul.tabs-content { margin: 0; display: block; } + ul.tabs-content > li { display:none; } + ul.tabs-content > li.active { display: block; } + + /* Clearfixing tabs for beautiful stacking */ + ul.tabs:before, + ul.tabs:after { + content: '\0020'; + display: block; + overflow: hidden; + visibility: hidden; + width: 0; + height: 0; } + ul.tabs:after { + clear: both; } + ul.tabs { + zoom: 1; } + + +/* #Forms +================================================== */ + + form { + margin-bottom: 20px; } + fieldset { + margin-bottom: 20px; } + input[type="text"], + input[type="password"], + input[type="email"], + textarea, + select { + border: 1px solid #ccc; + padding: 6px 4px; + outline: none; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; + font: 13px "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; + color: #777; + margin: 0; + width: 210px; + max-width: 100%; + display: block; + margin-bottom: 20px; + background: #fff; } + select { + padding: 0; } + input[type="text"]:focus, + input[type="password"]:focus, + input[type="email"]:focus, + textarea:focus { + border: 1px solid #aaa; + color: #444; + -moz-box-shadow: 0 0 3px rgba(0,0,0,.2); + -webkit-box-shadow: 0 0 3px rgba(0,0,0,.2); + box-shadow: 0 0 3px rgba(0,0,0,.2); } + textarea { + min-height: 60px; } + label, + legend { + display: block; + font-weight: bold; + font-size: 13px; } + select { + width: 220px; } + input[type="checkbox"] { + display: inline; } + label span, + legend span { + font-weight: normal; + font-size: 13px; + color: #444; } + +/* #Misc +================================================== */ + .remove-bottom { margin-bottom: 0 !important; } + .half-bottom { margin-bottom: 10px !important; } + .add-bottom { margin-bottom: 20px !important; } + + +/* + +chaiproject.org + +Some standard styles to help you get started + +Fibonacchi 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 + +*/ + +/* Code blocks */ + +pre, code { + font: 12px 'Bitstream Vera Sans Mono','Courier',monospace; +} + +/* Light Gradient */ +.gradient-light { + background: #eaeaea; /* Old browsers */ + background: -moz-linear-gradient(top, #eaeaea 0%, #b2b2b2 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#eaeaea), color-stop(100%,#b2b2b2)); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, #eaeaea 0%,#b2b2b2 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, #eaeaea 0%,#b2b2b2 100%); /* Opera11.10+ */ + background: -ms-linear-gradient(top, #eaeaea 0%,#b2b2b2 100%); /* IE10+ */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eaeaea', endColorstr='#b2b2b2',GradientType=0 ); /* IE6-9 */ + background: linear-gradient(top, #eaeaea 0%,#b2b2b2 100%); /* W3C */ +} + +/* Dark Gradient */ +.gradient-dark { + background: #45484d; /* Old browsers */ + background: -moz-linear-gradient(top, #45484d 0%, #000000 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#45484d), color-stop(100%,#000000)); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, #45484d 0%,#000000 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, #45484d 0%,#000000 100%); /* Opera11.10+ */ + background: -ms-linear-gradient(top, #45484d 0%,#000000 100%); /* IE10+ */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#45484d', endColorstr='#000000',GradientType=0 ); /* IE6-9 */ + background: linear-gradient(top, #45484d 0%,#000000 100%); /* W3C */ + color: #FFF; +} + +/* Small shadow */ +.shadow { + -moz-box-shadow: 0px 2px 2px #888; + -webkit-box-shadow: 0px 2px 2px #888; + box-shadow: 0px 2px 2px #888; +} + +/* Rounded corners */ +.round { + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} \ No newline at end of file diff --git a/css/layout.css b/css/layout.css new file mode 100755 index 0000000000..aff5b477e0 --- /dev/null +++ b/css/layout.css @@ -0,0 +1,58 @@ +/* +* Skeleton V1.1 +* Copyright 2011, Dave Gamache +* www.getskeleton.com +* Free to use under the MIT license. +* http://www.opensource.org/licenses/mit-license.php +* 8/17/2011 +*/ + +/* Table of Content +================================================== + #Site Styles + #Page Styles + #Media Queries + #Font-Face */ + +/* #Site Styles +================================================== */ + +/* #Page Styles +================================================== */ + +/* #Media Queries +================================================== */ + + /* Smaller than standard 960 (devices and browsers) */ + @media only screen and (max-width: 959px) {} + + /* Tablet Portrait size to standard 960 (devices and browsers) */ + @media only screen and (min-width: 768px) and (max-width: 959px) {} + + /* All Mobile Sizes (devices and browser) */ + @media only screen and (max-width: 767px) {} + + /* Mobile Landscape Size to Tablet Portrait (devices and browsers) */ + @media only screen and (min-width: 480px) and (max-width: 767px) {} + + /* Mobile Portrait Size to Mobile Landscape Size (devices and browsers) */ + @media only screen and (max-width: 479px) {} + + +/* #Font-Face +================================================== */ +/* This is the proper syntax for an @font-face file + Just create a "fonts" folder at the root, + copy your FontName into code below and remove + comment brackets */ + +/* @font-face { + font-family: 'FontName'; + src: url('../fonts/FontName.eot'); + src: url('../fonts/FontName.eot?iefix') format('eot'), + url('../fonts/FontName.woff') format('woff'), + url('../fonts/FontName.ttf') format('truetype'), + url('../fonts/FontName.svg#webfontZam02nTh') format('svg'); + font-weight: normal; + font-style: normal; } +*/ \ No newline at end of file diff --git a/css/skeleton.css b/css/skeleton.css new file mode 100755 index 0000000000..d0264a40b3 --- /dev/null +++ b/css/skeleton.css @@ -0,0 +1,236 @@ +/* +* Skeleton V1.1 +* Copyright 2011, Dave Gamache +* www.getskeleton.com +* Free to use under the MIT license. +* http://www.opensource.org/licenses/mit-license.php +* 8/17/2011 +*/ + + +/* Table of Contents +================================================== + #Base 960 Grid + #Tablet (Portrait) + #Mobile (Portrait) + #Mobile (Landscape) + #Clearing */ + + + +/* #Base 960 Grid +================================================== */ + + .container { position: relative; width: 960px; margin: 0 auto; padding: 0; } + .column, .columns { float: left; display: inline; margin-left: 10px; margin-right: 10px; } + .row { margin-bottom: 20px; } + + /* Nested Column Classes */ + .column.alpha, .columns.alpha { margin-left: 0; } + .column.omega, .columns.omega { margin-right: 0; } + + /* Base Grid */ + .container .one.column { width: 40px; } + .container .two.columns { width: 100px; } + .container .three.columns { width: 160px; } + .container .four.columns { width: 220px; } + .container .five.columns { width: 280px; } + .container .six.columns { width: 340px; } + .container .seven.columns { width: 400px; } + .container .eight.columns { width: 460px; } + .container .nine.columns { width: 520px; } + .container .ten.columns { width: 580px; } + .container .eleven.columns { width: 640px; } + .container .twelve.columns { width: 700px; } + .container .thirteen.columns { width: 760px; } + .container .fourteen.columns { width: 820px; } + .container .fifteen.columns { width: 880px; } + .container .sixteen.columns { width: 940px; } + + .container .one-third.column { width: 300px; } + .container .two-thirds.column { width: 620px; } + + /* Offsets */ + .container .offset-by-one { padding-left: 60px; } + .container .offset-by-two { padding-left: 120px; } + .container .offset-by-three { padding-left: 180px; } + .container .offset-by-four { padding-left: 240px; } + .container .offset-by-five { padding-left: 300px; } + .container .offset-by-six { padding-left: 360px; } + .container .offset-by-seven { padding-left: 420px; } + .container .offset-by-eight { padding-left: 480px; } + .container .offset-by-nine { padding-left: 540px; } + .container .offset-by-ten { padding-left: 600px; } + .container .offset-by-eleven { padding-left: 660px; } + .container .offset-by-twelve { padding-left: 720px; } + .container .offset-by-thirteen { padding-left: 780px; } + .container .offset-by-fourteen { padding-left: 840px; } + .container .offset-by-fifteen { padding-left: 900px; } + + + +/* #Tablet (Portrait) +================================================== */ + + /* Note: Design for a width of 768px */ + + @media only screen and (min-width: 768px) and (max-width: 959px) { + .container { width: 768px; } + .container .column, + .container .columns { margin-left: 10px; margin-right: 10px; } + .column.alpha, .columns.alpha { margin-left: 0; margin-right: 10px; } + .column.omega, .columns.omega { margin-right: 0; margin-left: 10px; } + + .container .one.column { width: 28px; } + .container .two.columns { width: 76px; } + .container .three.columns { width: 124px; } + .container .four.columns { width: 172px; } + .container .five.columns { width: 220px; } + .container .six.columns { width: 268px; } + .container .seven.columns { width: 316px; } + .container .eight.columns { width: 364px; } + .container .nine.columns { width: 412px; } + .container .ten.columns { width: 460px; } + .container .eleven.columns { width: 508px; } + .container .twelve.columns { width: 556px; } + .container .thirteen.columns { width: 604px; } + .container .fourteen.columns { width: 652px; } + .container .fifteen.columns { width: 700px; } + .container .sixteen.columns { width: 748px; } + + .container .one-third.column { width: 236px; } + .container .two-thirds.column { width: 492px; } + + /* Offsets */ + .container .offset-by-one { padding-left: 48px; } + .container .offset-by-two { padding-left: 96px; } + .container .offset-by-three { padding-left: 144px; } + .container .offset-by-four { padding-left: 192px; } + .container .offset-by-five { padding-left: 240px; } + .container .offset-by-six { padding-left: 288px; } + .container .offset-by-seven { padding-left: 336px; } + .container .offset-by-eight { padding-left: 348px; } + .container .offset-by-nine { padding-left: 432px; } + .container .offset-by-ten { padding-left: 480px; } + .container .offset-by-eleven { padding-left: 528px; } + .container .offset-by-twelve { padding-left: 576px; } + .container .offset-by-thirteen { padding-left: 624px; } + .container .offset-by-fourteen { padding-left: 672px; } + .container .offset-by-fifteen { padding-left: 720px; } + } + + +/* #Mobile (Portrait) +================================================== */ + + /* Note: Design for a width of 320px */ + + @media only screen and (max-width: 767px) { + .container { width: 300px; } + .columns, .column { margin: 0; } + + .container .one.column, + .container .two.columns, + .container .three.columns, + .container .four.columns, + .container .five.columns, + .container .six.columns, + .container .seven.columns, + .container .eight.columns, + .container .nine.columns, + .container .ten.columns, + .container .eleven.columns, + .container .twelve.columns, + .container .thirteen.columns, + .container .fourteen.columns, + .container .fifteen.columns, + .container .sixteen.columns, + .container .one-third.column, + .container .two-thirds.column { width: 300px; } + + /* Offsets */ + .container .offset-by-one, + .container .offset-by-two, + .container .offset-by-three, + .container .offset-by-four, + .container .offset-by-five, + .container .offset-by-six, + .container .offset-by-seven, + .container .offset-by-eight, + .container .offset-by-nine, + .container .offset-by-ten, + .container .offset-by-eleven, + .container .offset-by-twelve, + .container .offset-by-thirteen, + .container .offset-by-fourteen, + .container .offset-by-fifteen { padding-left: 0; } + + } + + +/* #Mobile (Landscape) +================================================== */ + + /* Note: Design for a width of 480px */ + + @media only screen and (min-width: 480px) and (max-width: 767px) { + .container { width: 420px; } + .columns, .column { margin: 0; } + + .container .one.column, + .container .two.columns, + .container .three.columns, + .container .four.columns, + .container .five.columns, + .container .six.columns, + .container .seven.columns, + .container .eight.columns, + .container .nine.columns, + .container .ten.columns, + .container .eleven.columns, + .container .twelve.columns, + .container .thirteen.columns, + .container .fourteen.columns, + .container .fifteen.columns, + .container .sixteen.columns, + .container .one-third.column, + .container .two-thirds.column { width: 420px; } + } + + +/* #Clearing +================================================== */ + + /* Self Clearing Goodness */ + .container:after { content: "\0020"; display: block; height: 0; clear: both; visibility: hidden; } + + /* Use clearfix class on parent to clear nested columns, + or wrap each row of columns in a
';this.widgets['Description'].value=cstr(this.ev.description);this.widgets['Public Event'].checked=false;this.widgets['Cancel Event'].checked=false;if(this.ev.event_type=='Public') -this.widgets['Public Event'].checked=true;this.widgets['Event Link'].innerHTML='';var div=$a(this.widgets['Event Link'],'div','link_type',{margin:'4px 0px'});div.onclick=function(){me.event_dialog.hide();loaddoc('Event',me.event_dialog.ev.name);} -div.innerHTML='View Event details, add or edit participants';} -d.widgets['Save'].onclick=function(){var d=me.event_dialog;d.ev.description=d.widgets['Description'].value;if(d.widgets['Cancel Event'].checked)d.ev.event_type='Cancel';else if(d.widgets['Public Event'].checked)d.ev.event_type='Public';me.event_dialog.hide();if(d.cal_ev) -var cal_ev=d.cal_ev;else -var cal_ev=me.set_event(d.ev);cal_ev.save();if(me.cur_view)me.cur_view.refresh();} -this.event_dialog=d;} -this.event_dialog.ev=ev;this.event_dialog.cal_ev=cal_ev?cal_ev:null;this.event_dialog.show();} -Calendar.prototype.add_event=function(){var ev=LocalDB.create('Event');ev=locals['Event'][ev];ev.event_date=dateutil.obj_to_str(this.selected_date);ev.event_hour=this.selected_hour+':00';ev.event_type='Private';this.show_event(ev);} -Calendar.prototype.get_month_events=function(call_back){var me=this;var f=function(r,rt){var el=me.get_daily_event_list(new Date());if($i('today_events_td')) -$i('today_events_td').innerHTML="Today's Events ("+el.length+")";if(me.cur_view)me.cur_view.refresh();if(call_back)call_back();} -var y=this.selected_date.getFullYear();var m=this.selected_date.getMonth();if(!this.events[y]||!this.events[y][m]){$c('webnotes.widgets.event.load_month_events',args={'month':m+1,'year':y},f);}} -Calendar.prototype.get_daily_event_list=function(day){var el=[];var d=day.getDate();var m=day.getMonth();var y=day.getFullYear() -if(this.events[y]&&this.events[y][m]&&this.events[y][m][d]){var l=this.events[y][m][d] -for(var i in l){for(var j in l[i])el[el.length]=l[i][j];} -return el;} -else return[];} -Calendar.prototype.set_event=function(ev){var dt=dateutil.str_to_obj(ev.event_date);var m=dt.getMonth();var d=dt.getDate();var y=dt.getFullYear();if(!this.events[y])this.events[y]=[];if(!this.events[y][m])this.events[y][m]=[];if(!this.events[y][m][d])this.events[y][m][d]=[];if(!this.events[y][m][d][cint(cint(ev.event_hour))])this.events[y][m][d][cint(ev.event_hour)]=[];var l=this.events[y][m][d][cint(ev.event_hour)];var cal_ev=new Calendar.CalEvent(ev,this);l[l.length]=cal_ev;this.has_event[ev.name]=true;return cal_ev;} -Calendar.prototype.refresh=function(viewtype){if(viewtype) -this.viewtype=viewtype;if(this.cur_view.viewtype!=this.viewtype){this.cur_view.hide();this.cur_view=this.views[this.viewtype];this.cur_view.in_home=false;this.cur_view.show();} -else{this.cur_view.refresh(this);} -_c.set_height();} -Calendar.CalEvent=function(doc,cal){this.body=document.createElement('div');var v=locals['Event'][doc.name].description;if(v==null)v='';this.body.innerHTML=v;this.doc=doc;var me=this;this.body.onclick=function(){if(me.doc.name){cal.show_event(me.doc,me);}}} -Calendar.CalEvent.prototype.show=function(vu){var t=this.doc.event_type;this.my_class='cal_event cal_event_'+t;if(this.body.parentNode) -this.body.parentNode.removeChild(this.body);vu.body.appendChild(this.body);var v=this.doc.description;if(v==null)v='';this.body.innerHTML=v;this.body.className=this.my_class;} -Calendar.CalEvent.prototype.save=function(){var me=this;save_doclist('Event',me.doc.name,'Save',function(r){me.doc=locals['Event'][r.docname];_c.calendar.has_event[r.docname]=true;});} -Calendar.View=function(){this.daystep=0;this.monthstep=0;} -Calendar.View.prototype.init=function(cal){this.cal=cal;this.body=$a(cal.body,'div','cal_view_body');this.body.style.display='none';this.create_table();} -Calendar.View.prototype.show=function(){this.get_events();this.refresh();this.body.style.display='block';} -Calendar.View.prototype.hide=function(){this.body.style.display='none';} -Calendar.View.prototype.next=function(){var s=this.cal.selected_date;this.cal.selected_date=new Date(s.getFullYear(),s.getMonth()+this.monthstep,s.getDate()+this.daystep);this.get_events();this.refresh();} -Calendar.View.prototype.prev=function(){var s=this.cal.selected_date;this.cal.selected_date=new Date(s.getFullYear(),s.getMonth()-this.monthstep,s.getDate()-this.daystep);this.get_events();this.refresh();} -Calendar.View.prototype.get_events=function(){this.cal.get_month_events();} -Calendar.View.prototype.add_unit=function(vu){this.viewunits[this.viewunits.length]=vu;} -Calendar.View.prototype.refresh_units=function(){if(isIE)_c.calendar.cur_view.refresh_units_main();else setTimeout('_c.calendar.cur_view.refresh_units_main()',2);} -Calendar.View.prototype.refresh_units_main=function(){for(var r in this.table.rows) -for(var c in this.table.rows[r].cells) -if(this.table.rows[r].cells[c].viewunit)this.table.rows[r].cells[c].viewunit.refresh();} -Calendar.MonthView=function(cal){this.init(cal);this.monthstep=1;this.rows=5;this.cells=7;} -Calendar.MonthView.prototype=new Calendar.View();Calendar.MonthView.prototype.create_table=function(){this.head_wrapper=$a(this.body,'div','cal_month_head');this.headtable=$a(this.head_wrapper,'table','cal_month_headtable');var r=this.headtable.insertRow(0);for(var j=0;j<7;j++){var cell=r.insertCell(j);cell.innerHTML=_c.calendar.weekdays[j];$w(cell,(100/7)+'%');} -this.main=$a(this.body,'div','cal_month_body');this.table=$a(this.main,'table','cal_month_table');var me=this;for(var i=0;i<5;i++){var r=this.table.insertRow(i);for(var j=0;j<7;j++){var cell=r.insertCell(j);cell.viewunit=new Calendar.MonthViewUnit(cell);}}} -Calendar.MonthView.prototype.refresh=function(){var c=this.cal.selected_date;var me=this;var cur_row=0;var cur_month=c.getMonth();var cur_year=c.getFullYear();var d=new Date(cur_year,cur_month,1);var day=1-d.getDay();var d=new Date(cur_year,cur_month,day);this.cal.view_title.innerHTML=month_list_full[cur_month]+' '+cur_year;for(var i=0;i<6;i++){if((i<5)||cur_month==d.getMonth()){for(var j=0;j<7;j++){var cell=this.table.rows[cur_row].cells[j];if((i<5)||cur_month==d.getMonth()){cell.viewunit.day=d;cell.viewunit.hour=8;if(cur_month==d.getMonth()){cell.viewunit.is_disabled=false;if(same_day(this.cal.todays_date,d)) -cell.viewunit.is_today=true;else -cell.viewunit.is_today=false;}else{cell.viewunit.is_disabled=true;}} -day++;d=new Date(cur_year,cur_month,day);}} -cur_row++;if(cur_row==5){cur_row=0;}} -this.refresh_units();} -Calendar.DayView=function(cal){this.init(cal);this.daystep=1;} -Calendar.DayView.prototype=new Calendar.View();Calendar.DayView.prototype.create_table=function(){this.main=$a(this.body,'div','cal_day_body');this.table=$a(this.main,'table','cal_day_table');var me=this;for(var i=0;i<12;i++){var r=this.table.insertRow(i);for(var j=0;j<2;j++){var cell=r.insertCell(j);if(j==0){var tmp=time_to_ampm((i*2)+':00');cell.innerHTML=tmp[0]+':'+tmp[1]+' '+tmp[2];$w(cell,'10%');}else{cell.viewunit=new Calendar.DayViewUnit(cell);cell.viewunit.hour=i*2;$w(cell,'90%');if((i>=4)&&(i<=10)){cell.viewunit.is_daytime=true;}}}}} -Calendar.DayView.prototype.refresh=function(){var c=this.cal.selected_date;var me=this;this.cal.view_title.innerHTML=_c.calendar.weekdays[c.getDay()]+', '+c.getDate()+' '+month_list_full[c.getMonth()]+' '+c.getFullYear();var d=c;for(var i=0;i<12;i++){var cell=this.table.rows[i].cells[1];if(same_day(this.cal.todays_date,d))cell.viewunit.is_today=true;else cell.viewunit.is_today=false;cell.viewunit.day=d;} -this.refresh_units();} -Calendar.WeekView=function(cal){this.init(cal);this.daystep=7;} -Calendar.WeekView.prototype=new Calendar.View();Calendar.WeekView.prototype.create_table=function(){this.head_wrapper=$a(this.body,'div','cal_month_head');this.headtable=$a(this.head_wrapper,'table','cal_month_headtable');var r=this.headtable.insertRow(0);for(var j=0;j<8;j++){var cell=r.insertCell(j);$w(cell,(100/8)+'%');} -this.main=$a(this.body,'div','cal_week_body');this.table=$a(this.main,'table','cal_week_table');var me=this;for(var i=0;i<12;i++){var r=this.table.insertRow(i);for(var j=0;j<8;j++){var cell=r.insertCell(j);if(j==0){var tmp=time_to_ampm((i*2)+':00');cell.innerHTML=tmp[0]+':'+tmp[1]+' '+tmp[2];$w(cell,'10%');}else{cell.viewunit=new Calendar.WeekViewUnit(cell);cell.viewunit.hour=i*2;if((i>=4)&&(i<=10)){cell.viewunit.is_daytime=true;}}}}} -Calendar.WeekView.prototype.refresh=function(){var c=this.cal.selected_date;var me=this;this.cal.view_title.innerHTML=month_list_full[c.getMonth()]+' '+c.getFullYear();var d=new Date(c.getFullYear(),c.getMonth(),c.getDate()-c.getDay());for(var k=1;k<8;k++){this.headtable.rows[0].cells[k].innerHTML=_c.calendar.weekdays[d.getDay()]+' '+d.getDate();for(var i=0;i<12;i++){var cell=this.table.rows[i].cells[k];if(same_day(this.cal.todays_date,d))cell.viewunit.is_today=true;else cell.viewunit.is_today=false;cell.viewunit.day=d;} -d=new Date(d.getFullYear(),d.getMonth(),d.getDate()+1);} -this.refresh_units();} -Calendar.ViewUnit=function(){} -Calendar.ViewUnit.prototype.init=function(parent){parent.style.border="1px solid #CCC";this.body=$a(parent,'div',this.default_class);this.parent=parent;var me=this;this.body.onclick=function(){_c.calendar.selected_date=me.day;_c.calendar.selected_hour=me.hour;if(_c.calendar.cur_vu&&_c.calendar.cur_vu!=me){_c.calendar.cur_vu.deselect();me.select();_c.calendar.cur_vu=me;}} -this.body.ondblclick=function(){_c.calendar.add_event();}} -Calendar.ViewUnit.prototype.set_header=function(v){this.header.innerHTML=v;} -Calendar.ViewUnit.prototype.set_today=function(){this.is_today=true;this.set_display();} -Calendar.ViewUnit.prototype.clear=function(){if(this.header)this.header.innerHTML='';while(this.body.childNodes.length) -this.body.removeChild(this.body.childNodes[0]);} -Calendar.ViewUnit.prototype.set_display=function(){var cn='#FFF';var col_tod_sel='#EEE';var col_tod='#FFF';var col_sel='#EEF';if(this.is_today){if(this.selected)cn=col_tod_sel;else cn=col_tod;}else -if(this.selected)cn=col_sel;if(this.header){if(this.is_disabled){this.body.className=this.default_class+' cal_vu_disabled';this.header.style.color='#BBB';}else{this.body.className=this.default_class;this.header.style.color='#000';} -if(this.day&&this.day.getDay()==0) -this.header.style.backgroundColor='#FEE';else -this.header.style.backgroundColor='';} -this.parent.style.backgroundColor=cn;} -Calendar.ViewUnit.prototype.is_selected=function(){return(same_day(this.day,_c.calendar.selected_date)&&this.hour==_c.calendar.selected_hour)} -Calendar.ViewUnit.prototype.get_event_list=function(){var y=this.day.getFullYear();var m=this.day.getMonth();var d=this.day.getDate();if(_c.calendar.events[y]&&_c.calendar.events[y][m]&&_c.calendar.events[y][m][d]&&_c.calendar.events[y][m][d][this.hour]){return _c.calendar.events[y][m][d][this.hour];}else -return[];} -Calendar.ViewUnit.prototype.refresh=function(){this.clear();if(this.is_selected()){if(_c.calendar.cur_vu)_c.calendar.cur_vu.deselect();this.selected=true;_c.calendar.cur_vu=this;} -this.set_display();this.el=this.get_event_list();if(this.onrefresh)this.onrefresh();for(var i in this.el){this.el[i].show(this);} -var me=this;} -Calendar.ViewUnit.prototype.select=function(){this.selected=true;this.set_display();} -Calendar.ViewUnit.prototype.deselect=function(){this.selected=false;this.set_display();} -Calendar.ViewUnit.prototype.setevent=function(){} -Calendar.MonthViewUnit=function(parent){this.header=$a(parent,'div',"cal_month_date");this.default_class="cal_month_unit";this.init(parent);this.onrefresh=function(){this.header.innerHTML=this.day.getDate();}} -Calendar.MonthViewUnit.prototype=new Calendar.ViewUnit();Calendar.MonthViewUnit.prototype.is_selected=function(){return same_day(this.day,_c.calendar.selected_date)} -Calendar.MonthViewUnit.prototype.get_event_list=function(){return _c.calendar.get_daily_event_list(this.day);} -Calendar.DayViewUnit=function(parent){this.default_class="cal_day_unit";this.init(parent);} -Calendar.DayViewUnit.prototype=new Calendar.ViewUnit();Calendar.DayViewUnit.prototype.onrefresh=function(){if(this.el.length<3)this.body.style.height='30px';else this.body.style.height='';} -Calendar.WeekViewUnit=function(parent){this.default_class="cal_week_unit";this.init(parent);} -Calendar.WeekViewUnit.prototype=new Calendar.ViewUnit();Calendar.WeekViewUnit.prototype.onrefresh=function(){if(this.el.length<3)this.body.style.height='30px';else this.body.style.height='';} \ No newline at end of file +startup_list.push(setup_space_holder); \ No newline at end of file diff --git a/js/wn/assets.js b/js/wn/assets.js index 881deb9072..cc8e8df9a0 100644 --- a/js/wn/assets.js +++ b/js/wn/assets.js @@ -53,7 +53,7 @@ wn.assets = { wn.xmlhttp.get(t, function(txt) { // add it to localstorage wn.assets.add(src, txt); - }, false) + }, 'q=' & Math.floor(Math.random()*1000) , false) }, // pass on to the handler to set diff --git a/js/wn/ui/button.js b/js/wn/ui/button.js index 72790e1771..9fb7209415 100644 --- a/js/wn/ui/button.js +++ b/js/wn/ui/button.js @@ -19,6 +19,10 @@ wn.ui.Button = function(args) { if(!this.disabled) this.user_onclick(this); }) + // bc + me.btn.set_working = me.set_working; + me.btn.done_working = me.done_working; + // style if(args.style) wn.dom.css(me.btn, args.style); @@ -26,14 +30,14 @@ wn.ui.Button = function(args) { set_working: function() { me.btn.disabled = 'disabled'; - wn.dom.show(this.loading_img, 'inline'); + wn.dom.show(me.loading_img, 'inline'); if(args.is_ajax) wn.dom.css(me.btn,{marginRight:'0px'}); }, done_working: function() { me.btn.disabled = false; - wn.dom.hide(this.loading_img); + wn.dom.hide(me.loading_img); if(args.is_ajax) wn.dom.css(me.btn,{marginRight:'24px'}); } diff --git a/js/wn/xmlhttp.js b/js/wn/xmlhttp.js index 69bb23390d..0e7b2f8343 100644 --- a/js/wn/xmlhttp.js +++ b/js/wn/xmlhttp.js @@ -14,7 +14,7 @@ wn.xmlhttp = { } }, - get: function(url, callback, async) { + get: function(url, callback, args, async) { // async by default if(async === null) async=true; var req = wn.xmlhttp.request(); @@ -26,7 +26,7 @@ wn.xmlhttp = { } } req.open('GET', url, async); - req.send(null); + req.send(args ? url + '?' + args : null); // for sync if(!async) { From b1abbaacf187b873ff9f20af7ab06b3ca24b15d4 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 9 Sep 2011 14:56:05 +0530 Subject: [PATCH 09/26] simple version control system --- py/build/version.py | 142 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 py/build/version.py diff --git a/py/build/version.py b/py/build/version.py new file mode 100644 index 0000000000..5f9b263aab --- /dev/null +++ b/py/build/version.py @@ -0,0 +1,142 @@ +""" + Version Control: + + Schema: + + properties (key, value) + uncommitted (fname, ftype, content, timestamp) + files (fname, ftype, content, timestamp, version) + +""" + +import unittest +import os + +root_path = os.path.abspath(os.path.join(os.path.abspath(os.path.dirname(__file__)), '..', '..')) +testfile = os.path.join(root_path, 'js/core.js') + +class TestVC(unittest.TestCase): + def setUp(self): + self.vc = VersionControl(root_path) + self.vc.setup() + + def test_add(self): + test_file = {'fname':'test.js', 'ftype':'js', 'content':'test_code', 'timestamp':'1100'} + self.vc.repo.add(**test_file) + ret = self.vc.sql('select * from uncommitted', as_dict=1)[0] + self.assertTrue(ret==test_file) + + def tearDown(self): + self.vc.close() + os.remove(os.path.join(root_path, '.wnf')) + +class VersionControl: + def __init__(self, root): + self.repo = Repository(self) + self.root(root) + + def setup(self): + """ + setup the schema + """ + self.cur.executescript(""" + create table properties(key, value); + create table uncommitted(fname, ftype, content, timestamp); + create table files(fname, ftype, content, timestamp, version); + """) + + def root(self, path=None): + """ + set / reset root and connect + """ + if path: + self.root_path = path + else: + return self.root_path + + import sqlite3 + self.conn = sqlite3.connect(os.path.join(self.root_path, '.wnf')) + self.cur = self.conn.cursor() + + def sql(self, query, values=(), as_dict=None): + """ + like webnotes.db.sql + """ + self.cur.execute(query, values) + res = self.cur.fetchall() + + if as_dict: + out = [] + for row in res: + d = {} + for idx, col in enumerate(self.cur.description): + d[col[0]] = row[idx] + out.append(d) + return out + + return res + + + def init(self): + """ + crate a .wnf db in the rool path to store the versions + """ + pass + + def ignore(self, fname): + """ + update ignore list + """ + pass + + + def add_all(self): + """ + walk the root folder Add all dirty files to the vcs + """ + pass + + def commit(self, comment=None): + """ + commit added files to the repository + """ + pass + + def close(self): + self.conn.close() + +class Repository: + def __init__(self, vc): + self.vc = vc + + def add(self, fname, ftype, timestamp, content=None): + """ + add to uncommitted + """ + self.vc.sql("insert into uncommitted(fname, ftype, timestamp, content) values (?, ?, ?, ?)" \ + , (fname, ftype, timestamp, content)) + + def commit(self, version): + """ + copy uncommitted files to repository, update the log and add the change + """ + pass + +class Log: + def __init__(self, vc): + self.vc = vc + + def add_to_log(self, version, fname, ftype): + """ + add file to log + """ + pass + + def get_diff(self, from_version, to_version=None): + """ + get list of files changed between versions + """ + pass + +if __name__=='__main__': + unittest.main() \ No newline at end of file From 47e3851c9390ece578a07937b59210cf74ab62a2 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Mon, 12 Sep 2011 14:45:18 +0530 Subject: [PATCH 10/26] commit, walk added --- py/build/version.py | 239 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 206 insertions(+), 33 deletions(-) diff --git a/py/build/version.py b/py/build/version.py index 5f9b263aab..03e5a7efc0 100644 --- a/py/build/version.py +++ b/py/build/version.py @@ -5,15 +5,31 @@ properties (key, value) uncommitted (fname, ftype, content, timestamp) - files (fname, ftype, content, timestamp, version) + files (fname, ftype, content, timestamp, version, committed_on) + log (fname, ftype, version, commited_on) + Discussion: + + There are 2 databases, versions.db and versions-local.db + + All changes are commited to versions-local.db, when the patches are complete, the developer + must pull the latest .wnf db and merge + + versions-local.db is never commited in the global repository + +TODO + + - walk + - merge + - client """ import unittest import os root_path = os.path.abspath(os.path.join(os.path.abspath(os.path.dirname(__file__)), '..', '..')) -testfile = os.path.join(root_path, 'js/core.js') +test_file = {'fname':'test.js', 'ftype':'js', 'content':'test_code', 'timestamp':'1100'} +edit_file = 'js/core.js' class TestVC(unittest.TestCase): def setUp(self): @@ -21,28 +37,81 @@ class TestVC(unittest.TestCase): self.vc.setup() def test_add(self): - test_file = {'fname':'test.js', 'ftype':'js', 'content':'test_code', 'timestamp':'1100'} self.vc.repo.add(**test_file) ret = self.vc.sql('select * from uncommitted', as_dict=1)[0] self.assertTrue(ret==test_file) + def test_commit(self): + last_number = self.vc.get_value('last_version_number') + self.vc.repo.add(**test_file) + self.vc.repo.commit() + + # test version + number = self.vc.get_value('last_version_number') + version = self.vc.sql("select version from versions where number=?", (number,))[0][0] + self.assertTrue(number != last_number) + + # test file + self.assertTrue(self.vc.repo.get_file('test.js')['content'] == test_file['content']) + + # test uncommitted + self.assertFalse(self.vc.sql("select * from uncommitted")) + + # test log + self.assertTrue(self.vc.sql("select * from log where version=?", (version,))) + + def test_diff(self): + self.vc.repo.add(**test_file) + self.vc.repo.commit() + self.assertTrue(self.vc.diff(None), ['test.js']) + + def test_walk(self): + # add + self.vc.add_all() + + # check if added + ret = self.vc.sql("select * from uncommitted", as_dict=1) + self.assertTrue(len(ret)>0) + + self.vc.repo.commit() + + # edit a file + p = os.path.join(root_path, edit_file) + print p + content = open(p, 'r').read() + f = open(p, 'w') + f.write(content) + f.close() + + # add + self.vc.add_all() + + # check if added + ret = self.vc.sql("select * from uncommitted", as_dict=1) + self.assertTrue(ret[0]['fname']==p) + def tearDown(self): self.vc.close() - os.remove(os.path.join(root_path, '.wnf')) + os.remove(self.vc.db_path) class VersionControl: def __init__(self, root): self.repo = Repository(self) + self.log = Log(self) self.root(root) + self.ignore_folders = ['.git', '.', '..'] + self.ignore_files = ['pyc', 'DS_Store', 'txt', 'db-journal', 'db'] def setup(self): """ setup the schema """ self.cur.executescript(""" - create table properties(key, value); - create table uncommitted(fname, ftype, content, timestamp); - create table files(fname, ftype, content, timestamp, version); + create table properties(pkey primary key, value); + create table uncommitted(fname primary key, ftype, content, timestamp); + create table files (fname primary key, ftype, content, timestamp, version, committed_on); + create table log (fname, ftype, version); + create table versions (number integer primary key, version); """) def root(self, path=None): @@ -55,7 +124,8 @@ class VersionControl: return self.root_path import sqlite3 - self.conn = sqlite3.connect(os.path.join(self.root_path, '.wnf')) + self.db_path = os.path.join(self.root_path, 'versions-local.db') + self.conn = sqlite3.connect(self.db_path) self.cur = self.conn.cursor() def sql(self, query, values=(), as_dict=None): @@ -75,13 +145,69 @@ class VersionControl: return out return res + + def timestamp(self, path): + """ + returns timestamp + """ + import os + return int(os.stat(path).st_mtime) + + def get_value(self, key): + """ + returns value of a property + """ + ret = self.sql("select `value` from properties where `pkey`=?", (key,)) + return ret and ret[0][0] or None + + def set_value(self, key, value): + """ + returns value of a property + """ + self.sql("insert or replace into properties(pkey, value) values (?, ?)", (key,value)) + + def add_all(self): + """ + walk the root folder Add all dirty files to the vcs + """ + import os + for wt in os.walk(self.root_path, followlinks = True): - - def init(self): + # ignore folders + for folder in self.ignore_folders: + if folder in wt[1]: + wt[1].remove(folder) + + for fname in wt[2]: + if fname.split('.')[-1] in self.ignore_files: + # nothing to do + continue + + fpath = os.path.join(wt[0], fname) + + # file does not exist + if not self.repo.exists(fpath): + print "%s added" % fpath + self.repo.add(fpath) + + # file changed + else: + if self.timestamp(fpath) != self.repo.timestamp(fpath): + print "%s changed" % fpath + self.repo.add(fpath) + + + def diff(self, number): """ - crate a .wnf db in the rool path to store the versions + get changed files since number """ - pass + if number is None: number = 0 + ret = self.sql(""" + select log.fname from log, versions + where versions.number > ? + and versions.version = log.version""", (number,)) + + return list(set([f[0] for f in ret])) def ignore(self, fname): """ @@ -90,18 +216,12 @@ class VersionControl: pass - def add_all(self): - """ - walk the root folder Add all dirty files to the vcs + def merge(self): """ - pass - - def commit(self, comment=None): + merges with global repository """ - commit added files to the repository - """ - pass - + + def close(self): self.conn.close() @@ -109,34 +229,87 @@ class Repository: def __init__(self, vc): self.vc = vc - def add(self, fname, ftype, timestamp, content=None): + def add(self, fname, ftype=None, timestamp=None, content=None): """ add to uncommitted """ + if not ftype: + ftype = fname.split('.')[-1] + + if not timestamp: + timestamp = self.vc.timestamp(fname) + self.vc.sql("insert into uncommitted(fname, ftype, timestamp, content) values (?, ?, ?, ?)" \ , (fname, ftype, timestamp, content)) + + def version(self): + """ + return a random version id + """ + import random + + # genarate id (global) + v = '%016x' % random.getrandbits(64) - def commit(self, version): + # set number (local) + self.vc.sql("insert into versions (number, version) values (null, ?)", (v,)) + number = self.vc.sql("select last_insert_rowid()")[0][0] + self.vc.set_value('last_version_number', number) + + return v + + def commit(self): """ copy uncommitted files to repository, update the log and add the change """ - pass - + # get a new version number + version = self.version() + + # find added files to commit + added = self.vc.sql("select * from uncommitted", as_dict=1) + for f in added: + + # move them to "files" + self.vc.sql(""" + insert or replace into files + (fname, ftype, timestamp, content, version) + values (?,?,?,?,?) + """, (f['fname'], f['ftype'], f['timestamp'], f['content'], version)) + + # update log + self.vc.log.add(f['fname'], f['ftype'], version) + + # clear uncommitted + self.vc.sql("delete from uncommitted") + + def exists(self, fname): + """ + true if exists + """ + return self.vc.sql("select fname from files where fname=?", (fname,)) + + def timestamp(self, fname): + """ + get timestamp + """ + return int(self.vc.sql("select timestamp from files where fname=?", (fname,))[0][0] or 0) + + def get_file(self, fname): + """ + return file info as dict + """ + return self.vc.sql("select * from files where fname=?", (fname,), as_dict=1)[0] + class Log: def __init__(self, vc): self.vc = vc - def add_to_log(self, version, fname, ftype): + def add(self, fname, ftype, version): """ add file to log """ - pass + self.vc.sql("insert into log(fname, ftype, version) values (?,?,?)", (fname, ftype, version)) - def get_diff(self, from_version, to_version=None): - """ - get list of files changed between versions - """ - pass if __name__=='__main__': unittest.main() \ No newline at end of file From 7e91d7075007332f2c16d17e322a7d343793545e Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Mon, 12 Sep 2011 17:59:32 +0530 Subject: [PATCH 11/26] versions - till merge --- js/legacy/globals.js | 3 +- js/legacy/wnf.compressed.js | 2 +- py/build/version.py | 291 +++++++++++++++++++++--------------- wnf.py | 4 + 4 files changed, 176 insertions(+), 124 deletions(-) create mode 100755 wnf.py diff --git a/js/legacy/globals.js b/js/legacy/globals.js index 8ff75702bc..3192ec8e49 100644 --- a/js/legacy/globals.js +++ b/js/legacy/globals.js @@ -75,7 +75,8 @@ var cur_frm=null; var pscript = {}; var validated = true; var validation_message = ''; -var tinymce_loaded=null; +var tinymce_loaded = null; +var cur_autosug = null; // icons var exp_icon = "images/ui/right-arrow.gif"; diff --git a/js/legacy/wnf.compressed.js b/js/legacy/wnf.compressed.js index 3098673926..61b0387534 100644 --- a/js/legacy/wnf.compressed.js +++ b/js/legacy/wnf.compressed.js @@ -1,7 +1,7 @@ wn.provide('wn.widgets.form');wn.provide('wn.widgets.report');wn.provide('wn.utils');wn.provide('wn.model');wn.provide('wn.profile');wn.provide('wn.session');wn.provide('_f');wn.provide('_p');wn.provide('_r');wn.provide('_c');wn.provide('_e');wn.provide('_startup_data') wn.settings.no_history=1;var NEWLINE='\n';var login_file='';var version='v170';var profile=null;var session={};var is_testing=false;var user=null;var user_defaults=null;var user_roles=null;var user_fullname=null;var user_email=null;var user_img={};var home_page=null;var page_body=null;var pscript={};var selector=null;var keypress_observers=[];var click_observers=[];var top_index=91;var _f={};var _p={};var _e={};var _r={};var FILTER_SEP='\1';var _c={};var widget_files={'_f.FrmContainer':'form.compressed.js','_c.CalendarPopup':'widgets/form/date_picker.js','_r.ReportContainer':'report.compressed.js','_p.PrintQuery':'widgets/print_query.js','Calendar':'widgets/calendar.js','Recommendation':'widgets/recommend.js','RatingWidget':'widgets/rating.js'} -var frms={};var cur_frm=null;var pscript={};var validated=true;var validation_message='';var tinymce_loaded=null;var exp_icon="images/ui/right-arrow.gif";var min_icon="images/ui/down-arrow.gif";var startup_list=[];wn.utils.full_name=function(fn,ln){return fn+(ln?' ':'')+(ln?ln:'')} +var frms={};var cur_frm=null;var pscript={};var validated=true;var validation_message='';var tinymce_loaded=null;var cur_autosug=null;var exp_icon="images/ui/right-arrow.gif";var min_icon="images/ui/down-arrow.gif";var startup_list=[];wn.utils.full_name=function(fn,ln){return fn+(ln?' ':'')+(ln?ln:'')} function fmt_money(v){if(v==null||v=='')return'0.00';v=(v+'').replace(/,/g,'');v=parseFloat(v);if(isNaN(v)){return'';}else{var cp=locals['Control Panel']['Control Panel'];var val=2;if(cp.currency_format=='Millions')val=3;v=v.toFixed(2);var delimiter=",";amount=v+'';var a=amount.split('.',2) var d=a[1];var i=parseInt(a[0]);if(isNaN(i)){return'';} var minus='';if(v<0){minus='-';} diff --git a/py/build/version.py b/py/build/version.py index 03e5a7efc0..8e6d6804e8 100644 --- a/py/build/version.py +++ b/py/build/version.py @@ -5,8 +5,8 @@ properties (key, value) uncommitted (fname, ftype, content, timestamp) - files (fname, ftype, content, timestamp, version, committed_on) - log (fname, ftype, version, commited_on) + files (fname, ftype, content, timestamp, version) + log (fname, ftype, version) Discussion: @@ -29,90 +29,111 @@ import os root_path = os.path.abspath(os.path.join(os.path.abspath(os.path.dirname(__file__)), '..', '..')) test_file = {'fname':'test.js', 'ftype':'js', 'content':'test_code', 'timestamp':'1100'} -edit_file = 'js/core.js' + +def edit_file(): + # edit a file + p = os.path.join(root_path, 'js/core.min.js') + content = open(p, 'r').read() + f = open(p, 'w') + f.write(content) + f.close() + return p + +verbose = False class TestVC(unittest.TestCase): def setUp(self): self.vc = VersionControl(root_path) - self.vc.setup() + self.vc.repo.setup() def test_add(self): self.vc.repo.add(**test_file) - ret = self.vc.sql('select * from uncommitted', as_dict=1)[0] + ret = self.vc.repo.sql('select * from uncommitted', as_dict=1)[0] self.assertTrue(ret==test_file) def test_commit(self): - last_number = self.vc.get_value('last_version_number') + last_number = self.vc.repo.get_value('last_version_number') self.vc.repo.add(**test_file) self.vc.repo.commit() # test version - number = self.vc.get_value('last_version_number') - version = self.vc.sql("select version from versions where number=?", (number,))[0][0] + number = self.vc.repo.get_value('last_version_number') + version = self.vc.repo.sql("select version from versions where number=?", (number,))[0][0] self.assertTrue(number != last_number) # test file self.assertTrue(self.vc.repo.get_file('test.js')['content'] == test_file['content']) # test uncommitted - self.assertFalse(self.vc.sql("select * from uncommitted")) + self.assertFalse(self.vc.repo.sql("select * from uncommitted")) # test log - self.assertTrue(self.vc.sql("select * from log where version=?", (version,))) + self.assertTrue(self.vc.repo.sql("select * from log where version=?", (version,))) def test_diff(self): self.vc.repo.add(**test_file) self.vc.repo.commit() - self.assertTrue(self.vc.diff(None), ['test.js']) + self.assertTrue(self.vc.repo.diff(None), ['test.js']) - def test_walk(self): + def test_walk(self): # add self.vc.add_all() # check if added - ret = self.vc.sql("select * from uncommitted", as_dict=1) + ret = self.vc.repo.sql("select * from uncommitted", as_dict=1) self.assertTrue(len(ret)>0) self.vc.repo.commit() - # edit a file - p = os.path.join(root_path, edit_file) - print p - content = open(p, 'r').read() - f = open(p, 'w') - f.write(content) - f.close() + p = edit_file() # add self.vc.add_all() # check if added - ret = self.vc.sql("select * from uncommitted", as_dict=1) + ret = self.vc.repo.sql("select * from uncommitted", as_dict=1) self.assertTrue(ret[0]['fname']==p) + def test_merge(self): + self.vc.add_all() + + self.vc.repo.commit() + + # write the file + self.vc.repo.conn.commit() + + # make master (copy) + os.system('cp %s %s' % (os.path.join(root_path, 'versions-local.db'), os.path.join(root_path, 'versions-master.db'))) + self.vc.setup_master() + + p = edit_file() + + self.vc.add_all() + self.vc.repo.commit() + + self.vc.merge(self.vc.repo, self.vc.master) + + log = self.vc.master.diff(int(self.vc.master.get_value('last_version_number'))-1) + self.assertTrue(log, [p]) + def tearDown(self): self.vc.close() - os.remove(self.vc.db_path) - + os.remove(self.vc.repo.db_path) + + + + class VersionControl: def __init__(self, root): - self.repo = Repository(self) - self.log = Log(self) + #self.master = Repository(self, 'versions-master.db') self.root(root) + + self.repo = Repository(self, 'versions-local.db') self.ignore_folders = ['.git', '.', '..'] self.ignore_files = ['pyc', 'DS_Store', 'txt', 'db-journal', 'db'] - def setup(self): - """ - setup the schema - """ - self.cur.executescript(""" - create table properties(pkey primary key, value); - create table uncommitted(fname primary key, ftype, content, timestamp); - create table files (fname primary key, ftype, content, timestamp, version, committed_on); - create table log (fname, ftype, version); - create table versions (number integer primary key, version); - """) + def setup_master(self): + self.master = Repository(self, 'versions-master.db') def root(self, path=None): """ @@ -122,29 +143,6 @@ class VersionControl: self.root_path = path else: return self.root_path - - import sqlite3 - self.db_path = os.path.join(self.root_path, 'versions-local.db') - self.conn = sqlite3.connect(self.db_path) - self.cur = self.conn.cursor() - - def sql(self, query, values=(), as_dict=None): - """ - like webnotes.db.sql - """ - self.cur.execute(query, values) - res = self.cur.fetchall() - - if as_dict: - out = [] - for row in res: - d = {} - for idx, col in enumerate(self.cur.description): - d[col[0]] = row[idx] - out.append(d) - return out - - return res def timestamp(self, path): """ @@ -153,19 +151,6 @@ class VersionControl: import os return int(os.stat(path).st_mtime) - def get_value(self, key): - """ - returns value of a property - """ - ret = self.sql("select `value` from properties where `pkey`=?", (key,)) - return ret and ret[0][0] or None - - def set_value(self, key, value): - """ - returns value of a property - """ - self.sql("insert or replace into properties(pkey, value) values (?, ?)", (key,value)) - def add_all(self): """ walk the root folder Add all dirty files to the vcs @@ -187,49 +172,98 @@ class VersionControl: # file does not exist if not self.repo.exists(fpath): - print "%s added" % fpath + if verbose: + print "%s added" % fpath self.repo.add(fpath) # file changed else: if self.timestamp(fpath) != self.repo.timestamp(fpath): - print "%s changed" % fpath + if verbose: + print "%s changed" % fpath self.repo.add(fpath) - - - def diff(self, number): - """ - get changed files since number - """ - if number is None: number = 0 - ret = self.sql(""" - select log.fname from log, versions - where versions.number > ? - and versions.version = log.version""", (number,)) - - return list(set([f[0] for f in ret])) - def ignore(self, fname): + def version_diff(self, source, target): """ - update ignore list + get missing versions in target """ - pass - - - def merge(self): + # find versions in source not in target + d = [] + + versions = source.sql("select version from versions") + for v in versions: + if not target.sql("select version from versions where version=?", v): + d.append(v) + + return d + + def merge(self, source, target): """ - merges with global repository + merges with two repositories """ - + for d in self.version_diff(source, target): + for f in source.sql("select * from files where version=?", d, as_dict=1): + target.add(**f) + + target.commit(d[0]) def close(self): - self.conn.close() + self.repo.conn.close() class Repository: - def __init__(self, vc): + def __init__(self, vc, fname = 'versions-local.db'): self.vc = vc + + import sqlite3 + self.db_path = os.path.join(self.vc.root_path, fname) + self.conn = sqlite3.connect(self.db_path) + self.cur = self.conn.cursor() + + def setup(self): + """ + setup the schema + """ + self.cur.executescript(""" + create table properties(pkey primary key, value); + create table uncommitted(fname primary key, ftype, content, timestamp); + create table files (fname primary key, ftype, content, timestamp, version); + create table log (fname, ftype, version); + create table versions (number integer primary key, version); + """) + + def sql(self, query, values=(), as_dict=None): + """ + like webnotes.db.sql + """ + self.cur.execute(query, values) + res = self.cur.fetchall() + + if as_dict: + out = [] + for row in res: + d = {} + for idx, col in enumerate(self.cur.description): + d[col[0]] = row[idx] + out.append(d) + return out + + return res + + def get_value(self, key): + """ + returns value of a property + """ + ret = self.sql("select `value` from properties where `pkey`=?", (key,)) + return ret and ret[0][0] or None + + def set_value(self, key, value): + """ + returns value of a property + """ + self.sql("insert or replace into properties(pkey, value) values (?, ?)", (key,value)) + - def add(self, fname, ftype=None, timestamp=None, content=None): + def add(self, fname, ftype=None, timestamp=None, content=None, version=None): """ add to uncommitted """ @@ -239,76 +273,89 @@ class Repository: if not timestamp: timestamp = self.vc.timestamp(fname) - self.vc.sql("insert into uncommitted(fname, ftype, timestamp, content) values (?, ?, ?, ?)" \ + self.sql("insert into uncommitted(fname, ftype, timestamp, content) values (?, ?, ?, ?)" \ , (fname, ftype, timestamp, content)) - def version(self): + def new_version(self): """ return a random version id """ import random # genarate id (global) - v = '%016x' % random.getrandbits(64) - + return '%016x' % random.getrandbits(64) + + def update_number(self, version): + """ + update version.number + """ # set number (local) - self.vc.sql("insert into versions (number, version) values (null, ?)", (v,)) - number = self.vc.sql("select last_insert_rowid()")[0][0] - self.vc.set_value('last_version_number', number) - - return v + self.sql("insert into versions (number, version) values (null, ?)", (version,)) + number = self.sql("select last_insert_rowid()")[0][0] + self.set_value('last_version_number', number) - def commit(self): + def commit(self, version=None): """ copy uncommitted files to repository, update the log and add the change """ # get a new version number - version = self.version() + if not version: + version = self.new_version() + + self.update_number(version) # find added files to commit - added = self.vc.sql("select * from uncommitted", as_dict=1) + added = self.sql("select * from uncommitted", as_dict=1) for f in added: # move them to "files" - self.vc.sql(""" + self.sql(""" insert or replace into files (fname, ftype, timestamp, content, version) values (?,?,?,?,?) """, (f['fname'], f['ftype'], f['timestamp'], f['content'], version)) # update log - self.vc.log.add(f['fname'], f['ftype'], version) + self.add_log(f['fname'], f['ftype'], version) # clear uncommitted - self.vc.sql("delete from uncommitted") + self.sql("delete from uncommitted") def exists(self, fname): """ true if exists """ - return self.vc.sql("select fname from files where fname=?", (fname,)) + return self.sql("select fname from files where fname=?", (fname,)) def timestamp(self, fname): """ get timestamp """ - return int(self.vc.sql("select timestamp from files where fname=?", (fname,))[0][0] or 0) + return int(self.sql("select timestamp from files where fname=?", (fname,))[0][0] or 0) + + def diff(self, number): + """ + get changed files since number + """ + if number is None: number = 0 + ret = self.sql(""" + select log.fname from log, versions + where versions.number > ? + and versions.version = log.version""", (number,)) + + return list(set([f[0] for f in ret])) def get_file(self, fname): """ return file info as dict """ - return self.vc.sql("select * from files where fname=?", (fname,), as_dict=1)[0] - -class Log: - def __init__(self, vc): - self.vc = vc + return self.sql("select * from files where fname=?", (fname,), as_dict=1)[0] - def add(self, fname, ftype, version): + def add_log(self, fname, ftype, version): """ add file to log """ - self.vc.sql("insert into log(fname, ftype, version) values (?,?,?)", (fname, ftype, version)) + self.sql("insert into log(fname, ftype, version) values (?,?,?)", (fname, ftype, version)) if __name__=='__main__': diff --git a/wnf.py b/wnf.py new file mode 100755 index 0000000000..853acfeea9 --- /dev/null +++ b/wnf.py @@ -0,0 +1,4 @@ +#!/usr/bin/env python + +print 'hello' + From 30fca54f319d7c1b470846d07de269b389e4eeec Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 14 Sep 2011 12:25:33 +0530 Subject: [PATCH 12/26] versions 0.1 --- js/build.json | 1 + js/core.js | 2 + js/core.min.js | 13 ++++-- js/wn/assets.js | 9 ++-- js/wn/versions.js | 42 +++++++++++++++++ js/wn/xmlhttp.js | 5 ++- py/build/__init__.py | 7 +-- py/build/bundle.py | 33 +++++++------- py/build/project.py | 29 +++++++----- py/build/version.py | 100 ++++++++++++++++++++++++++++++----------- py/webnotes/handler.py | 9 ++++ wnf.py | 55 ++++++++++++++++++++++- 12 files changed, 234 insertions(+), 71 deletions(-) create mode 100644 js/wn/versions.js diff --git a/js/build.json b/js/build.json index ee822313cd..b3ba217ecf 100644 --- a/js/build.json +++ b/js/build.json @@ -2,6 +2,7 @@ "core.min.js": [ "wn/provide.js", "wn/xmlhttp.js", + "wn/versions.js", "wn/assets.js", "wn/require.js", "wn/dom.js", diff --git a/js/core.js b/js/core.js index 71c08ceb57..55a96ed6b0 100644 --- a/js/core.js +++ b/js/core.js @@ -1,3 +1,5 @@ +// find files changed since last version +wn.versions.check(); // load all critical libraries wn.require("lib/js/lib/jquery.min.js"); diff --git a/js/core.min.js b/js/core.min.js index 76a2102c76..5eaed40bb7 100644 --- a/js/core.min.js +++ b/js/core.min.js @@ -5,9 +5,14 @@ parent=parent[n];}} wn.provide('wn.settings');wn.provide('wn.ui');wn.xmlhttp={request:function(){if(window.XMLHttpRequest) return new XMLHttpRequest();else if(window.ActiveXObject) return new ActiveXObject("MsXml2.XmlHttp");},complete:function(req,callback,url){if(req.status==200||req.status==304){callback(req.responseText);}else{alert(url+' request error: '+req.statusText+' ('+req.status+')');}},get:function(url,callback,args,async){if(async===null)async=true;var req=wn.xmlhttp.request();req.onreadystatechange=function(){if(req.readyState==4){wn.xmlhttp.complete(req,callback,url)}} -req.open('GET',url,async);req.send(args?url+'?'+args:null);if(!async){wn.xmlhttp.complete(req,callback,url)}}} -wn.assets={executed_:{},exists:function(src){if('localStorage'in window&&localStorage.getItem(src)&&localStorage.getItem('[ts] '+src)==asset_timestamps_[src]) -return true},add:function(src,txt){if('localStorage'in window){localStorage.setItem(src,txt);localStorage.setItem('[ts] '+src,asset_timestamps_[src]);}},get:function(src){return localStorage.getItem(src);},extn:function(src){return src.split('.').slice(-1)[0];},html_src:function(src){if(src.indexOf('/')!=-1){var t=src.split('/').slice(0,-1);t.push('src');t=t.join('/')+'/'+a.split('/').slice(-1)[0];}else{var t='src/'+src;} +var u=args?(url+'?'+args):url;req.open('GET',u,async);req.send(null);if(!async){wn.xmlhttp.complete(req,callback,url)}}} +wn.versions={is_latest:function(){if(window._version_number==(localStorage?localStorage['_version_number']:null)){return true;} +return false;},get_diff:function(){if(!localStorage)return;wn.xmlhttp.get('index.cgi',function(txt){r=JSON.parse(txt);if(r.exc){alert(r.exc);} +wn.versions.set(r.message);},'cmd=get_diff&version_number='+localStorage['_version_number'],false);},set:function(diff){for(var i=0;i1: + print 'usage: wnf add path/to/file' + return + + vc.repo.add(sys.argv[2]) + + if cmd=='commit': + if len(sys.argv>2) and sys.argv[2]=='-a': + vc.add_all() + + vc.repo.commit() + + if cmd=='diff': + vc.repo.uncommitted() + + if cmd=='merge': + vc.setup_master() + if sys.argv[2]=='local': + vc.merge(vc.repo, vc.master) + elif sys.argv[2]=='master': + vc.merge(vc.master, vc.repo) + else: + print "usage: wnf merge local|master" + print "help: parameter (local or master) is the source" + + if cmd=='setup': + vc.repo.setup() + + vc.close() + +if __name__=='__main__': + run() \ No newline at end of file From a7a09867edbd3377bac4f7560f4ac7d86f6248a6 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 14 Sep 2011 18:55:15 +0530 Subject: [PATCH 13/26] fixes in versions and making startup versionable --- js/core.min.js | 9 +- js/legacy/widgets/dialog.js | 8 +- js/legacy/wnf.compressed.js | 8 +- js/wn/assets.js | 10 ++ js/wn/require.js | 6 +- js/wn/xmlhttp.js | 9 +- py/build/version.py | 169 +++++++++++++++++++------------ py/webnotes/handler.py | 3 +- py/webnotes/model/doc.py | 10 +- py/webnotes/startup.py | 171 +++++++++++++++++++++++++++++++ py/webnotes/tests.py | 2 +- py/webnotes/utils/nestedset.py | 177 +++++++++++++++++++++++++++++---- wnf.py | 48 +++++---- 13 files changed, 510 insertions(+), 120 deletions(-) create mode 100644 py/webnotes/startup.py diff --git a/js/core.min.js b/js/core.min.js index 5eaed40bb7..2a626cb57a 100644 --- a/js/core.min.js +++ b/js/core.min.js @@ -5,19 +5,20 @@ parent=parent[n];}} wn.provide('wn.settings');wn.provide('wn.ui');wn.xmlhttp={request:function(){if(window.XMLHttpRequest) return new XMLHttpRequest();else if(window.ActiveXObject) return new ActiveXObject("MsXml2.XmlHttp");},complete:function(req,callback,url){if(req.status==200||req.status==304){callback(req.responseText);}else{alert(url+' request error: '+req.statusText+' ('+req.status+')');}},get:function(url,callback,args,async){if(async===null)async=true;var req=wn.xmlhttp.request();req.onreadystatechange=function(){if(req.readyState==4){wn.xmlhttp.complete(req,callback,url)}} -var u=args?(url+'?'+args):url;req.open('GET',u,async);req.send(null);if(!async){wn.xmlhttp.complete(req,callback,url)}}} +var sep=(args.indexOf('?')==-1?'?':'&');var u=args?(url+sep+args):url;req.open('GET',u,async);req.send(null);if(!async){wn.xmlhttp.complete(req,callback,url)}}} wn.versions={is_latest:function(){if(window._version_number==(localStorage?localStorage['_version_number']:null)){return true;} return false;},get_diff:function(){if(!localStorage)return;wn.xmlhttp.get('index.cgi',function(txt){r=JSON.parse(txt);if(r.exc){alert(r.exc);} wn.versions.set(r.message);},'cmd=get_diff&version_number='+localStorage['_version_number'],false);},set:function(diff){for(var i=0;i0) - self.vc.repo.commit() + self.vc.commit() p = edit_file() # add @@ -103,19 +97,18 @@ class TestVC(unittest.TestCase): def test_merge(self): self.vc.add_all() - self.vc.repo.commit() + self.vc.commit() # write the file self.vc.repo.conn.commit() # make master (copy) - os.system('cp %s %s' % (os.path.join(root_path, 'versions-local.db'), os.path.join(root_path, 'versions-master.db'))) self.vc.setup_master() p = edit_file() self.vc.add_all() - self.vc.repo.commit() + self.vc.commit() self.vc.merge(self.vc.repo, self.vc.master) @@ -124,39 +117,66 @@ class TestVC(unittest.TestCase): def tearDown(self): self.vc.close() - os.remove(self.vc.repo.db_path) - - - + if os.path.exists(self.vc.local_db_name()): + os.remove(self.vc.local_db_name()) + if os.path.exists(self.vc.master_db_name()): + os.remove(self.vc.master_db_name()) class VersionControl: - def __init__(self, root=None): - #self.master = Repository(self, 'versions-master.db') + def __init__(self, root=None, testing=False): + self.testing = testing + self.set_root(root) - self.repo = Repository(self, 'versions-local.db') + self.repo = Repository(self, self.local_db_name()) self.ignore_folders = ['.git', '.', '..'] self.ignore_files = ['py', 'pyc', 'DS_Store', 'txt', 'db-journal', 'db'] + def local_db_name(self): + """return local db name""" + return os.path.join(self.root_path, 'versions-local.db' + (self.testing and '.test' or '')) + + def master_db_name(self): + """return master db name""" + return os.path.join(self.root_path, 'versions-master.db' + (self.testing and '.test' or '')) + def setup_master(self): - self.master = Repository(self, 'versions-master.db') + """ + setup master db from local (if not present) + """ + import os + if not os.path.exists(self.master_db_name()): + os.system('cp %s %s' % (self.local_db_name(), self.master_db_name())) + + self.master = Repository(self, self.master_db_name()) def set_root(self, path=None): """ set / reset root and connect (the root path is the path of the folder) """ + import os if not path: - raise Exception, 'path must be given' + path = os.path.abspath(os.path.curdir) self.root_path = path + def relpath(self, fname): + """ + get relative path from root path + """ + import os + return os.path.relpath(fname, self.root_path) + def timestamp(self, path): """ returns timestamp """ import os - return int(os.stat(path).st_mtime) + if os.path.exists(path): + return int(os.stat(path).st_mtime) + else: + return 0 def add_all(self): """ @@ -182,7 +202,7 @@ class VersionControl: continue # file does not exist - if not self.repo.exists(fpath): + if not self.exists(fpath): if verbose: print "%s added" % fpath self.repo.add(fpath) @@ -217,16 +237,44 @@ class VersionControl: target.add(**f) target.commit(d[0]) + + """ + short hand + """ + def commit(self, version=None): + """commit to local""" + self.repo.commit(version) + + def add(self, **args): + """add to local""" + self.repo.add(**args) + def remove(self, fname): + """remove from local""" + self.repo.add(fname=fname, action='remove') + + def exists(self, fname): + """exists in local""" + return len(self.repo.sql("select fname from files where fname=?", (self.relpath(fname),))) + + def get_file(self, fname): + """return file""" + return self.repo.sql("select * from files where fname=?", (self.relpath(fname),), as_dict=1)[0] + + def close(self): self.repo.conn.commit() self.repo.conn.close() - + + + + class Repository: - def __init__(self, vc, fname = 'versions-local.db'): + def __init__(self, vc, fname): self.vc = vc import sqlite3 + self.db_path = os.path.join(self.vc.root_path, fname) self.conn = sqlite3.connect(self.db_path) self.cur = self.conn.cursor() @@ -238,7 +286,7 @@ class Repository: print "setting up %s..." % self.db_path self.cur.executescript(""" create table properties(pkey primary key, value); - create table uncommitted(fname primary key, ftype, content, timestamp); + create table uncommitted(fname primary key, ftype, content, timestamp, action); create table files (fname primary key, ftype, content, timestamp, version); create table log (fname, ftype, version); create table versions (number integer primary key, version); @@ -277,22 +325,26 @@ class Repository: self.sql("insert or replace into properties(pkey, value) values (?, ?)", (key,value)) - def add(self, fname, ftype=None, timestamp=None, content=None, version=None): + def add(self, fname, ftype=None, timestamp=None, content=None, version=None, action=None): """ add to uncommitted """ import os + + if not timestamp: + timestamp = self.vc.timestamp(fname) + # commit relative path - fname = os.path.relpath(fname, self.vc.root_path) + fname = self.vc.relpath(fname) + if not action: + action = 'add' + if not ftype: ftype = fname.split('.')[-1] - - if not timestamp: - timestamp = self.vc.timestamp(fname) - - self.sql("insert or replace into uncommitted(fname, ftype, timestamp, content) values (?, ?, ?, ?)" \ - , (fname, ftype, timestamp, content)) + + self.sql("insert or replace into uncommitted(fname, ftype, timestamp, content, action) values (?, ?, ?, ?, ?)" \ + , (fname, ftype, timestamp, content, action)) def new_version(self): """ @@ -340,29 +392,28 @@ class Repository: added = self.sql("select * from uncommitted", as_dict=1) for f in added: + if f['action']=='add': + # move them to "files" + self.sql(""" + insert or replace into files + (fname, ftype, timestamp, content, version) + values (?,?,?,?,?) + """, (f['fname'], f['ftype'], f['timestamp'], f['content'], version)) + + elif f['action']=='remove': + self.sql("""delete from files where fname=?""", (f['fname'],)) + + else: + raise Exception, 'bad action %s' % action - # move them to "files" - self.sql(""" - insert or replace into files - (fname, ftype, timestamp, content, version) - values (?,?,?,?,?) - """, (f['fname'], f['ftype'], f['timestamp'], f['content'], version)) - # update log self.add_log(f['fname'], f['ftype'], version) - def exists(self, fname): - """ - true if exists - """ - fname = os.path.relpath(fname, self.vc.root_path) - return self.sql("select fname from files where fname=?", (fname,)) - def timestamp(self, fname): """ get timestamp """ - fname = os.path.relpath(fname, self.vc.root_path) + fname = self.vc.relpath(fname) return int(self.sql("select timestamp from files where fname=?", (fname,))[0][0] or 0) def diff(self, number): @@ -383,12 +434,6 @@ class Repository: """ return [f[0] for f in self.sql("select fname from uncommitted")] - def get_file(self, fname): - """ - return file info as dict - """ - return self.sql("select * from files where fname=?", (fname,), as_dict=1)[0] - def add_log(self, fname, ftype, version): """ add file to log diff --git a/py/webnotes/handler.py b/py/webnotes/handler.py index 6b0aa3ee87..0933bf4613 100755 --- a/py/webnotes/handler.py +++ b/py/webnotes/handler.py @@ -44,10 +44,9 @@ def logout(): # -------- def get_diff(): - import os v = webnotes.form_dict.get('version_number') from build.version import VersionControl - webnotes.response['message'] = VersionControl(os.path.abspath(os.path.curdir)).repo.diff(v) + webnotes.response['message'] = VersionControl().repo.diff(v) # DocType Mapper # ------------------------------------------------------------------------------------ diff --git a/py/webnotes/model/doc.py b/py/webnotes/model/doc.py index 38e4896227..6a6a15596f 100755 --- a/py/webnotes/model/doc.py +++ b/py/webnotes/model/doc.py @@ -95,8 +95,14 @@ class Document: def _loadfromdb(self, doctype = None, name = None): if name: self.name = name if doctype: self.doctype = doctype - - if webnotes.model.meta.is_single(self.doctype): + + is_single = False + try: + is_single = webnotes.model.meta.is_single(self.doctype) + except Exception, e: + pass + + if is_single: self._loadsingle() else: dataset = webnotes.conn.sql('select * from `%s%s` where name="%s"' % (self._prefix, self.doctype, self.name.replace('"', '\"'))) diff --git a/py/webnotes/startup.py b/py/webnotes/startup.py new file mode 100644 index 0000000000..dfb666135b --- /dev/null +++ b/py/webnotes/startup.py @@ -0,0 +1,171 @@ +""" + startup info for the app + + client needs info that is static across all users + and user specific info like roles and defaults + + so calling will be: + index.cgi?cmd=webnotes.startup.common_info + index.cgi?cmd=webnotes.startup.user_info&user=x@y.com + + to clear startup, + you must clear all files in the vcs starting with index.cgi?cmd=webnotes.startup +""" + +import webnotes + + +def get_letter_heads(): + """ + get letter head + """ + import webnotes + try: + lh = {} + ret = webnotes.conn.sql("select name, content from `tabLetter Head` where ifnull(disabled,0)=0") + for r in ret: + lh[r[0]] = r[1] + return lh + except Exception, e: + if e.args[0]==1146: + return {} + else: + raise Exception, e + + + + +def get_content_user(): + """ + get user specific content + """ + import webnotes + import webnotes.utils + import webnotes.widgets.page + import webnotes.widgets.menus + + user = webnotes.form_dict['user'] + doclist, ret = [], {} + + webnotes.conn.begin() + ret['profile'] = webnotes.user.load_profile() + home_page = webnotes.user.get_home_page() + if home_page: + doclist += webnotes.widgets.page.get(home_page) + + ret['sysdefaults'] = webnotes.utils.get_defaults() + ret['home_page'] = home_page or '' + + # role-wise menus + ret['start_items'] = webnotes.widgets.menus.get_menu_items() + + # bundle + webnotes.session['data']['profile'] = ret['profile'] + if webnotes.session['data'].get('ipinfo'): + ret['ipinfo'] = webnotes.session['data']['ipinfo'] + + webnotes.conn.commit() + + webnotes.response['docs'] = doclist + + return ret + +def get_content_common(): + """ + build common startup info + """ + + import webnotes + import webnotes.model.doc + import webnotes.model.doctype + import webnotes.model + + doclist, ret = [], {} + doclist += webnotes.model.doc.get('Control Panel') + doclist += webnotes.model.doctype.get('Event') + doclist += webnotes.model.doctype.get('Search Criteria') + + cp = doclist[0] + ret['account_name'] = cp.account_id or '' + ret['letter_heads'] = get_letter_heads() + ret['dt_labels'] = webnotes.model.get_dt_labels() + + webnotes.response['docs'] = doclist + + return ret + + +def common_info(): + """ + get common startup info (from version or live) + """ + get_info('index.cgi?cmd=webnotes.startup.common_info', 'common') + +def user_info(): + """ + get user info + """ + user = webnotes.form_dict['user'] + get_info('index.cgi?cmd=webnotes.startup.user_info&user='+user, 'user') + +def get_info(fname, key): + """ + get info from version or re-build + """ + from build.version import VersionControl + + vc = VersionControl() + + # from versions (same static) + + if vc.exists(fname): + content = vc.get_file(fname)['content'] + else: + content = globals().get('get_content_'+key)() + import json + content = json.dumps(content) + + # add in vcs + vc.add(fname=fname, content=content) + vc.commit() + + vc.close() + + webnotes.response['content'] = content + return + + + + + +def clear_info(info_type=None): + """ + clear startup info and force a new version + + parameter: info_type = 'user' or 'common' or 'all' + """ + if not info_type: + info_type = webnotes.form_dict.get('info_type') + + from build.version import VersionControl + vc = VersionControl() + + flist = [] + + if info_type=='common': + flist = ['index.cgi?cmd=webnotes.startup.common_info'] + elif info_type=='user': + flist = [f[0] for f in vc.repo.sql("""select fname from files where fname like ?""",\ + ('index.cgi?cmd=webnotes.startup.user_info%',))] + elif info_type=='all': + flist = [f[0] for f in vc.repo.sql("""select fname from files where fname like ?""",\ + ('index.cgi?cmd=webnotes.startup%',))] + else: + webnotes.msgprint("info_type not found: %s" % info_type) + + for f in flist: + print 'clearing %s' % f + vc.remove(f) + + vc.commit() + vc.close() \ No newline at end of file diff --git a/py/webnotes/tests.py b/py/webnotes/tests.py index 1506ef7ec8..bb75dd8561 100644 --- a/py/webnotes/tests.py +++ b/py/webnotes/tests.py @@ -15,7 +15,7 @@ import sys, os import unittest # webnotes path -sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) +sys.path.append('lib/py') # modules path import webnotes diff --git a/py/webnotes/utils/nestedset.py b/py/webnotes/utils/nestedset.py index 97cf156074..a80bec14ba 100644 --- a/py/webnotes/utils/nestedset.py +++ b/py/webnotes/utils/nestedset.py @@ -8,29 +8,149 @@ # ------------------------------------------ -import webnotes +import webnotes, unittest + +class TestNSM(unittest.TestCase): + + def setUp(self): + from webnotes.model.doc import Document + self.root = Document(fielddata={'doctype':'nsmtest', 'name':'T001', 'parent':None}) + self.first_child = Document(fielddata={'doctype':'nsmtest', 'name':'C001', 'parent_node':'T001'}) + self.first_sibling = Document(fielddata={'doctype':'nsmtest', 'name':'C002', 'parent_node':'T001'}) + self.grand_child = Document(fielddata={'doctype':'nsmtest', 'name':'GC001', 'parent_node':'C001'}) + + webnotes.conn.sql(""" + create table `tabnsmtest` ( + name varchar(120) not null primary key, + creation datetime, + modified datetime, + modified_by varchar(40), + owner varchar(40), + docstatus int(1) default '0', + parent varchar(120), + parentfield varchar(120), + parenttype varchar(120), + idx int(8), + parent_node varchar(180), + old_parent varchar(180), + lft int, + rgt int) ENGINE=InnoDB""") + + def test_root(self): + self.root.save(1) + update_nsm(self.root) + self.assertTrue(self.root.lft==1) + self.assertTrue(self.root.rgt==2) + + def test_first_child(self): + self.root.save(1) + update_nsm(self.root) + + self.first_child.save(1) + update_nsm(self.first_child) + + self.root._loadfromdb() + + self.assertTrue(self.root.lft==1) + self.assertTrue(self.first_child.lft==2) + self.assertTrue(self.first_child.rgt==3) + self.assertTrue(self.root.rgt==4) + + def test_sibling(self): + self.test_first_child() + + self.first_sibling.save(1) + update_nsm(self.first_sibling) + + self.root._loadfromdb() + self.first_child._loadfromdb() + + self.assertTrue(self.root.lft==1) + self.assertTrue(self.first_child.lft==2) + self.assertTrue(self.first_child.rgt==3) + self.assertTrue(self.first_sibling.lft==4) + self.assertTrue(self.first_sibling.rgt==5) + self.assertTrue(self.root.rgt==6) + + def test_remove_sibling(self): + self.test_sibling() + self.first_sibling.parent_node = '' + update_nsm(self.first_sibling) + + self.root._loadfromdb() + self.first_child._loadfromdb() + + self.assertTrue(self.root.lft==1) + self.assertTrue(self.first_child.lft==2) + self.assertTrue(self.first_child.rgt==3) + self.assertTrue(self.root.rgt==4) + self.assertTrue(self.first_sibling.lft==5) + self.assertTrue(self.first_sibling.rgt==6) + + def test_change_parent(self): + self.test_sibling() + + # add grand child + self.grand_child.save(1) + update_nsm(self.grand_child) + + # check lft rgt + self.assertTrue(self.grand_child.lft==3) + self.assertTrue(self.grand_child.rgt==4) + + # change parent + self.grand_child.parent_node = 'C002' + self.grand_child.save() + + # update + update_nsm(self.grand_child) + + # check lft rgt + self.assertTrue(self.grand_child.lft==5) + self.assertTrue(self.grand_child.rgt==6) + + + def tearDown(self): + webnotes.conn.sql("drop table tabnsmtest") + + # called in the on_update method def update_nsm(doc_obj): # get fields, data from the DocType - d = doc_obj.doc + pf, opf = 'parent_node', 'old_parent' - if hasattr(doc_obj,'nsm_parent_field'): - pf = doc_obj.nsm_parent_field - if hasattr(doc_obj,'nsm_oldparent_field'): - opf = doc_obj.nsm_oldparent_field - p, op = d.fields[pf], d.fields.get(opf, '') + + if str(doc_obj.__class__)=='webnotes.model.doc.Document': + # passed as a Document object + d = doc_obj + else: + # passed as a DocType object + d = doc_obj.doc + if hasattr(doc_obj,'nsm_parent_field'): + pf = doc_obj.nsm_parent_field + if hasattr(doc_obj,'nsm_oldparent_field'): + opf = doc_obj.nsm_oldparent_field + + p, op = d.fields.get(pf, ''), d.fields.get(opf, '') # has parent changed (?) or parent is None (root) - if not doc_obj.doc.lft and not doc_obj.doc.rgt: - update_add_node(doc_obj.doc.doctype, doc_obj.doc.name, p or '', pf) + if not d.lft and not d.rgt: + update_add_node(d.doctype, d.name, p or '', pf) elif op != p: - update_remove_node(doc_obj.doc.doctype, doc_obj.doc.name) - update_add_node(doc_obj.doc.doctype, doc_obj.doc.name, p or '', pf) + update_remove_node(d.doctype, d.name) + update_add_node(d.doctype, d.name, p or '', pf) + # set old parent webnotes.conn.set(d, opf, p or '') + + # reload + d._loadfromdb() def rebuild_tree(doctype, parent_field): + """ + call rebuild_node for all root nodes + """ # get all roots right = 1 result = webnotes.conn.sql("SELECT name FROM `tab%s` WHERE `%s`='' or `%s` IS NULL" % (doctype, parent_field, parent_field)) @@ -38,6 +158,12 @@ def rebuild_tree(doctype, parent_field): right = rebuild_node(doctype, r[0], right, parent_field) def rebuild_node(doctype, parent, left, parent_field): + """ + reset lft, rgt and recursive call for all children + """ + from webnotes.utils import now + n = now() + # the right value of this node is the left value + 1 right = left+1 @@ -48,37 +174,50 @@ def rebuild_node(doctype, parent, left, parent_field): # we've got the left value, and now that we've processed # the children of this node we also know the right value - webnotes.conn.sql('UPDATE `tab%s` SET lft=%s, rgt=%s WHERE name="%s"' % (doctype,left,right,parent)) + webnotes.conn.sql("UPDATE `tab%s` SET lft=%s, rgt=%s, modified='%s' WHERE name='%s'" % (doctype,left,right,n,parent)) #return the right value of this node + 1 return right+1 def update_add_node(doctype, name, parent, parent_field): + """ + insert a new node + """ + from webnotes.utils import now + n = now() + # get the last sibling of the parent if parent: right = webnotes.conn.sql("select rgt from `tab%s` where name='%s'" % (doctype, parent))[0][0] else: # root right = webnotes.conn.sql("select ifnull(max(rgt),0)+1 from `tab%s` where ifnull(`%s`,'') =''" % (doctype, parent_field))[0][0] right = right or 1 - + # update all on the right - webnotes.conn.sql("update `tab%s` set rgt = rgt+2 where rgt >= %s" %(doctype,right)) - webnotes.conn.sql("update `tab%s` set lft = lft+2 where lft >= %s" %(doctype,right)) + webnotes.conn.sql("update `tab%s` set rgt = rgt+2, modified='%s' where rgt >= %s" %(doctype,n,right)) + webnotes.conn.sql("update `tab%s` set lft = lft+2, modified='%s' where lft >= %s" %(doctype,n,right)) # update index of new node if webnotes.conn.sql("select * from `tab%s` where lft=%s or rgt=%s"% (doctype, right, right+1)): webnotes.msgprint("Nested set error. Please send mail to support") raise Exception - webnotes.conn.sql("update `tab%s` set lft=%s, rgt=%s where name='%s'" % (doctype,right,right+1,name)) + webnotes.conn.sql("update `tab%s` set lft=%s, rgt=%s, modified='%s' where name='%s'" % (doctype,right,right+1,n,name)) return right def update_remove_node(doctype, name): + """ + remove a node + """ + from webnotes.utils import now + n = now() + left = webnotes.conn.sql("select lft from `tab%s` where name='%s'" % (doctype,name)) if left[0][0]: # reset this node - webnotes.conn.sql("update `tab%s` set lft=0, rgt=0 where name='%s'" % (doctype,name)) + webnotes.conn.sql("update `tab%s` set lft=0, rgt=0, modified='%s' where name='%s'" % (doctype,n,name)) # update all on the right - webnotes.conn.sql("update `tab%s` set rgt = rgt-2 where rgt > %s" %(doctype,left[0][0])) - webnotes.conn.sql("update `tab%s` set lft = lft-2 where lft > %s" %(doctype,left[0][0])) + webnotes.conn.sql("update `tab%s` set rgt = rgt-2, modified='%s' where rgt > %s" %(doctype,n,left[0][0])) + webnotes.conn.sql("update `tab%s` set lft = lft-2, modified='%s' where lft > %s" %(doctype,n,left[0][0])) + diff --git a/wnf.py b/wnf.py index bd22f68be3..f31d3b04dd 100755 --- a/wnf.py +++ b/wnf.py @@ -9,7 +9,6 @@ version.verbose = True def run(): sys.path.append('lib') sys.path.append('lib/py') - vc = version.VersionControl(os.path.abspath(os.curdir)) if len(sys.argv)<2: print "wnframework version control utility" @@ -20,25 +19,13 @@ def run(): if cmd=='build': from py import build - build.run(os.path.abspath(os.curdir)) - - if cmd=='add': - if not len(sys.argv)>1: - print 'usage: wnf add path/to/file' - return - - vc.repo.add(sys.argv[2]) - - if cmd=='commit': - if len(sys.argv>2) and sys.argv[2]=='-a': - vc.add_all() - - vc.repo.commit() - - if cmd=='diff': - vc.repo.uncommitted() - + build.run() + + vc = version.VersionControl() + print 'version %s' % vc.repo.get_value('last_version_number') + if cmd=='merge': + vc = version.VersionControl() vc.setup_master() if sys.argv[2]=='local': vc.merge(vc.repo, vc.master) @@ -47,11 +34,32 @@ def run(): else: print "usage: wnf merge local|master" print "help: parameter (local or master) is the source" + vc.close() if cmd=='setup': + vc = version.VersionControl() vc.repo.setup() + vc.close() + + if cmd=='clear_startup': + from webnotes import startup + startup.clear_info('all') - vc.close() + vc = version.VersionControl() + print 'version %s' % vc.repo.get_value('last_version_number') + + if cmd=='log': + vc = version.VersionControl() + for l in vc.repo.sql("select * from log order by rowid desc limit 10 ", as_dict =1): + print 'file:'+ l['fname'] + ' | version: ' + l['version'] + print 'version %s' % vc.repo.get_value('last_version_number') + vc.close() + + if cmd=='files': + vc = version.VersionControl() + for f in vc.repo.sql("select fname from files where fname like ?", ((sys.argv[2] + '%'),)): + print f[0] + vc.close() if __name__=='__main__': run() \ No newline at end of file From 91b7cef159d6bfe500c92b730182fdf6c901f30f Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Thu, 15 Sep 2011 12:55:43 +0530 Subject: [PATCH 14/26] ready for merge --- css/ui/status_bar.css | 11 ++------ js/core.min.js | 2 +- js/wn/xmlhttp.js | 2 +- py/build/__init__.py | 4 +-- py/build/project.py | 8 +++--- py/build/timestamps.py | 3 +++ py/build/version.py | 5 ---- py/webnotes/model/doctype.py | 5 +++- py/webnotes/modules/__init__.py | 5 ++-- wnf.py | 48 ++++++++++++++++++++++++--------- 10 files changed, 55 insertions(+), 38 deletions(-) diff --git a/css/ui/status_bar.css b/css/ui/status_bar.css index 10e7cbdfca..18c76661d2 100644 --- a/css/ui/status_bar.css +++ b/css/ui/status_bar.css @@ -1,19 +1,12 @@ div.status_bar_outer { - background-color: rgba(0,0,0,0.2); + background-color: rgba(0,0,0,0.1); border: 1px solid rgba(0,0,0,0.4); height: 21px; width: 240px; } div.status_bar_inner { - background: #a9e4f7; /* Old browsers */ - background: -moz-linear-gradient(left, #a9e4f7 0%, #0fb4e7 100%); /* FF3.6+ */ - background: -webkit-gradient(linear, left top, right top, color-stop(0%,#a9e4f7), color-stop(100%,#0fb4e7)); /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(left, #a9e4f7 0%,#0fb4e7 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(left, #a9e4f7 0%,#0fb4e7 100%); /* Opera11.10+ */ - background: -ms-linear-gradient(left, #a9e4f7 0%,#0fb4e7 100%); /* IE10+ */ - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#a9e4f7', endColorstr='#0fb4e7',GradientType=1 ); /* IE6-9 */ - background: linear-gradient(left, #a9e4f7 0%,#0fb4e7 100%); /* W3C */ + background: #aaf; /* Old browsers */ height: 21px; width: 0%; } \ No newline at end of file diff --git a/js/core.min.js b/js/core.min.js index 2a626cb57a..d38713d766 100644 --- a/js/core.min.js +++ b/js/core.min.js @@ -5,7 +5,7 @@ parent=parent[n];}} wn.provide('wn.settings');wn.provide('wn.ui');wn.xmlhttp={request:function(){if(window.XMLHttpRequest) return new XMLHttpRequest();else if(window.ActiveXObject) return new ActiveXObject("MsXml2.XmlHttp");},complete:function(req,callback,url){if(req.status==200||req.status==304){callback(req.responseText);}else{alert(url+' request error: '+req.statusText+' ('+req.status+')');}},get:function(url,callback,args,async){if(async===null)async=true;var req=wn.xmlhttp.request();req.onreadystatechange=function(){if(req.readyState==4){wn.xmlhttp.complete(req,callback,url)}} -var sep=(args.indexOf('?')==-1?'?':'&');var u=args?(url+sep+args):url;req.open('GET',u,async);req.send(null);if(!async){wn.xmlhttp.complete(req,callback,url)}}} +var sep=((args&&args.indexOf('?'))==-1)?'?':'&';var u=args?(url+sep+args):url;req.open('GET',u,async);req.send(null);if(!async){wn.xmlhttp.complete(req,callback,url)}}} wn.versions={is_latest:function(){if(window._version_number==(localStorage?localStorage['_version_number']:null)){return true;} return false;},get_diff:function(){if(!localStorage)return;wn.xmlhttp.get('index.cgi',function(txt){r=JSON.parse(txt);if(r.exc){alert(r.exc);} wn.versions.set(r.message);},'cmd=get_diff&version_number='+localStorage['_version_number'],false);},set:function(diff){for(var i=0;i [^)]*) \)', re.VERBOSE) code = p.sub(self.get_js, code) - - return code \ No newline at end of file + + return code + \ No newline at end of file diff --git a/wnf.py b/wnf.py index f31d3b04dd..a904940bda 100755 --- a/wnf.py +++ b/wnf.py @@ -5,15 +5,22 @@ import os, sys from py.build import version version.verbose = True - +def print_help(): + print "wnframework version control utility" + print + print "Usage:" + print "python lib/wnf.py build : scan all folders and commit versions with latest changes" + print "python lib/wnf.py setup : setup the local system (from master or fresh)" + print "python lib/wnf.py merge [local|master] : merge from source (master or local)" + print "python lib/wnf.py log : list last 10 commits" + def run(): sys.path.append('lib') sys.path.append('lib/py') if len(sys.argv)<2: - print "wnframework version control utility" - print - print "Usage: wnf build|add|commit|diff|merge|setup" + print_help() + return cmd = sys.argv[1] @@ -24,7 +31,7 @@ def run(): vc = version.VersionControl() print 'version %s' % vc.repo.get_value('last_version_number') - if cmd=='merge': + elif cmd=='merge': vc = version.VersionControl() vc.setup_master() if sys.argv[2]=='local': @@ -36,30 +43,45 @@ def run(): print "help: parameter (local or master) is the source" vc.close() - if cmd=='setup': - vc = version.VersionControl() - vc.repo.setup() - vc.close() + elif cmd=='setup': + if not os.path.exists('versions-local.db'): + if os.path.exists('versions-master.db'): + import shutil + shutil.copyfile('versions-master.db', 'versions-local.db') + print "created versions-local.db from versions-master.db" + else: + vc = version.VersionControl() + vc.repo.setup() + vc.close() + print "created fresh versions-local.db" + else: + if len(sys.argv)==3 and sys.argv[2]=='master': + import shutil + shutil.copyfile('versions-local.db', 'versions-master.db') + print "created versions-master.db from versions-local.db" + else: + print "versions-local.db already exists. Nothing to do." - if cmd=='clear_startup': + elif cmd=='clear_startup': + # experimental from webnotes import startup startup.clear_info('all') vc = version.VersionControl() print 'version %s' % vc.repo.get_value('last_version_number') - if cmd=='log': + elif cmd=='log': vc = version.VersionControl() for l in vc.repo.sql("select * from log order by rowid desc limit 10 ", as_dict =1): print 'file:'+ l['fname'] + ' | version: ' + l['version'] print 'version %s' % vc.repo.get_value('last_version_number') vc.close() - if cmd=='files': + elif cmd=='files': vc = version.VersionControl() for f in vc.repo.sql("select fname from files where fname like ?", ((sys.argv[2] + '%'),)): print f[0] vc.close() - + if __name__=='__main__': run() \ No newline at end of file From a8460d9f21bc07ec1a26aa9e3b485cfad0e4d5dc Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Thu, 15 Sep 2011 15:18:59 +0530 Subject: [PATCH 15/26] moved nestedset --- cgi-bin/webnotes/utils/nestedset.py | 223 ---------------------------- js/legacy/app.js | 2 +- 2 files changed, 1 insertion(+), 224 deletions(-) delete mode 100644 cgi-bin/webnotes/utils/nestedset.py diff --git a/cgi-bin/webnotes/utils/nestedset.py b/cgi-bin/webnotes/utils/nestedset.py deleted file mode 100644 index a80bec14ba..0000000000 --- a/cgi-bin/webnotes/utils/nestedset.py +++ /dev/null @@ -1,223 +0,0 @@ -# Tree (Hierarchical) Nested Set Model (nsm) -# -# To use the nested set model, -# use the following pattern -# 1. name your parent field as "parent_node" if not have a property nsm_parent_field as your field name in the document class -# 2. have a field called "old_parent" in your fields list - this identifies whether the parent has been changed -# 3. call update_nsm(doc_obj) in the on_upate method - -# ------------------------------------------ - -import webnotes, unittest - -class TestNSM(unittest.TestCase): - - def setUp(self): - from webnotes.model.doc import Document - self.root = Document(fielddata={'doctype':'nsmtest', 'name':'T001', 'parent':None}) - self.first_child = Document(fielddata={'doctype':'nsmtest', 'name':'C001', 'parent_node':'T001'}) - self.first_sibling = Document(fielddata={'doctype':'nsmtest', 'name':'C002', 'parent_node':'T001'}) - self.grand_child = Document(fielddata={'doctype':'nsmtest', 'name':'GC001', 'parent_node':'C001'}) - - webnotes.conn.sql(""" - create table `tabnsmtest` ( - name varchar(120) not null primary key, - creation datetime, - modified datetime, - modified_by varchar(40), - owner varchar(40), - docstatus int(1) default '0', - parent varchar(120), - parentfield varchar(120), - parenttype varchar(120), - idx int(8), - parent_node varchar(180), - old_parent varchar(180), - lft int, - rgt int) ENGINE=InnoDB""") - - def test_root(self): - self.root.save(1) - update_nsm(self.root) - self.assertTrue(self.root.lft==1) - self.assertTrue(self.root.rgt==2) - - def test_first_child(self): - self.root.save(1) - update_nsm(self.root) - - self.first_child.save(1) - update_nsm(self.first_child) - - self.root._loadfromdb() - - self.assertTrue(self.root.lft==1) - self.assertTrue(self.first_child.lft==2) - self.assertTrue(self.first_child.rgt==3) - self.assertTrue(self.root.rgt==4) - - def test_sibling(self): - self.test_first_child() - - self.first_sibling.save(1) - update_nsm(self.first_sibling) - - self.root._loadfromdb() - self.first_child._loadfromdb() - - self.assertTrue(self.root.lft==1) - self.assertTrue(self.first_child.lft==2) - self.assertTrue(self.first_child.rgt==3) - self.assertTrue(self.first_sibling.lft==4) - self.assertTrue(self.first_sibling.rgt==5) - self.assertTrue(self.root.rgt==6) - - def test_remove_sibling(self): - self.test_sibling() - self.first_sibling.parent_node = '' - update_nsm(self.first_sibling) - - self.root._loadfromdb() - self.first_child._loadfromdb() - - self.assertTrue(self.root.lft==1) - self.assertTrue(self.first_child.lft==2) - self.assertTrue(self.first_child.rgt==3) - self.assertTrue(self.root.rgt==4) - self.assertTrue(self.first_sibling.lft==5) - self.assertTrue(self.first_sibling.rgt==6) - - def test_change_parent(self): - self.test_sibling() - - # add grand child - self.grand_child.save(1) - update_nsm(self.grand_child) - - # check lft rgt - self.assertTrue(self.grand_child.lft==3) - self.assertTrue(self.grand_child.rgt==4) - - # change parent - self.grand_child.parent_node = 'C002' - self.grand_child.save() - - # update - update_nsm(self.grand_child) - - # check lft rgt - self.assertTrue(self.grand_child.lft==5) - self.assertTrue(self.grand_child.rgt==6) - - - def tearDown(self): - webnotes.conn.sql("drop table tabnsmtest") - - - -# called in the on_update method -def update_nsm(doc_obj): - # get fields, data from the DocType - - pf, opf = 'parent_node', 'old_parent' - - if str(doc_obj.__class__)=='webnotes.model.doc.Document': - # passed as a Document object - d = doc_obj - else: - # passed as a DocType object - d = doc_obj.doc - if hasattr(doc_obj,'nsm_parent_field'): - pf = doc_obj.nsm_parent_field - if hasattr(doc_obj,'nsm_oldparent_field'): - opf = doc_obj.nsm_oldparent_field - - p, op = d.fields.get(pf, ''), d.fields.get(opf, '') - - # has parent changed (?) or parent is None (root) - if not d.lft and not d.rgt: - update_add_node(d.doctype, d.name, p or '', pf) - elif op != p: - update_remove_node(d.doctype, d.name) - update_add_node(d.doctype, d.name, p or '', pf) - - # set old parent - webnotes.conn.set(d, opf, p or '') - - # reload - d._loadfromdb() - -def rebuild_tree(doctype, parent_field): - """ - call rebuild_node for all root nodes - """ - # get all roots - right = 1 - result = webnotes.conn.sql("SELECT name FROM `tab%s` WHERE `%s`='' or `%s` IS NULL" % (doctype, parent_field, parent_field)) - for r in result: - right = rebuild_node(doctype, r[0], right, parent_field) - -def rebuild_node(doctype, parent, left, parent_field): - """ - reset lft, rgt and recursive call for all children - """ - from webnotes.utils import now - n = now() - - # the right value of this node is the left value + 1 - right = left+1 - - # get all children of this node - result = webnotes.conn.sql("SELECT name FROM `tab%s` WHERE `%s`='%s'" % (doctype, parent_field, parent)) - for r in result: - right = rebuild_node(doctype, r[0], right, parent_field) - - # we've got the left value, and now that we've processed - # the children of this node we also know the right value - webnotes.conn.sql("UPDATE `tab%s` SET lft=%s, rgt=%s, modified='%s' WHERE name='%s'" % (doctype,left,right,n,parent)) - - #return the right value of this node + 1 - return right+1 - -def update_add_node(doctype, name, parent, parent_field): - """ - insert a new node - """ - from webnotes.utils import now - n = now() - - # get the last sibling of the parent - if parent: - right = webnotes.conn.sql("select rgt from `tab%s` where name='%s'" % (doctype, parent))[0][0] - else: # root - right = webnotes.conn.sql("select ifnull(max(rgt),0)+1 from `tab%s` where ifnull(`%s`,'') =''" % (doctype, parent_field))[0][0] - right = right or 1 - - # update all on the right - webnotes.conn.sql("update `tab%s` set rgt = rgt+2, modified='%s' where rgt >= %s" %(doctype,n,right)) - webnotes.conn.sql("update `tab%s` set lft = lft+2, modified='%s' where lft >= %s" %(doctype,n,right)) - - # update index of new node - if webnotes.conn.sql("select * from `tab%s` where lft=%s or rgt=%s"% (doctype, right, right+1)): - webnotes.msgprint("Nested set error. Please send mail to support") - raise Exception - - webnotes.conn.sql("update `tab%s` set lft=%s, rgt=%s, modified='%s' where name='%s'" % (doctype,right,right+1,n,name)) - return right - -def update_remove_node(doctype, name): - """ - remove a node - """ - from webnotes.utils import now - n = now() - - left = webnotes.conn.sql("select lft from `tab%s` where name='%s'" % (doctype,name)) - if left[0][0]: - # reset this node - webnotes.conn.sql("update `tab%s` set lft=0, rgt=0, modified='%s' where name='%s'" % (doctype,n,name)) - - # update all on the right - webnotes.conn.sql("update `tab%s` set rgt = rgt-2, modified='%s' where rgt > %s" %(doctype,n,left[0][0])) - webnotes.conn.sql("update `tab%s` set lft = lft-2, modified='%s' where lft > %s" %(doctype,n,left[0][0])) - diff --git a/js/legacy/app.js b/js/legacy/app.js index 3987a14efb..10313674bc 100644 --- a/js/legacy/app.js +++ b/js/legacy/app.js @@ -70,7 +70,7 @@ function startup() { setup_events(); var a = new Body(); - page_body.run_startup_code(); + page_body.run_startup_code(); page_body.setup_sidebar_menu(); for(var i=0; i Date: Thu, 15 Sep 2011 16:02:13 +0530 Subject: [PATCH 16/26] fixed startup.py --- py/webnotes/handler.py | 1 - py/webnotes/{startup.py => startup_test.py} | 0 2 files changed, 1 deletion(-) rename py/webnotes/{startup.py => startup_test.py} (100%) diff --git a/py/webnotes/handler.py b/py/webnotes/handler.py index 0933bf4613..f4a9228fd9 100755 --- a/py/webnotes/handler.py +++ b/py/webnotes/handler.py @@ -11,7 +11,6 @@ session = None errdoc = '' errdoctype = '' errmethod = '' -fw_folder = '/Users/rushabh/workbench/www/' # Logs diff --git a/py/webnotes/startup.py b/py/webnotes/startup_test.py similarity index 100% rename from py/webnotes/startup.py rename to py/webnotes/startup_test.py From 751a3bea741cbaae19957f15ed230a5f8a434bf9 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Thu, 15 Sep 2011 17:10:43 +0530 Subject: [PATCH 17/26] fixed 'class' issue in button --- js/legacy/utils/dom.js | 4 ++-- js/legacy/wnf.compressed.js | 2 +- js/wn/ui/button.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/js/legacy/utils/dom.js b/js/legacy/utils/dom.js index 34a1d4eb9b..36492ebbcd 100644 --- a/js/legacy/utils/dom.js +++ b/js/legacy/utils/dom.js @@ -71,11 +71,11 @@ function $ln(parent, label, onclick, style) { return wn.ele.link({parent:parent, label:label, onclick:onclick, style:style}) } -function $btn(parent, label, onclick, style, class, is_ajax) { +function $btn(parent, label, onclick, style, css_class, is_ajax) { wn.require('lib/js/wn/ui/button.js'); if(class==='green') class='cupid-green'; return new wn.ui.Button( - {parent:parent, label:label, onclick:onclick, style:style, is_ajax: is_ajax, class: class} + {parent:parent, label:label, onclick:onclick, style:style, is_ajax: is_ajax, css_class: css_class} ).btn; } diff --git a/js/legacy/wnf.compressed.js b/js/legacy/wnf.compressed.js index ec67bd5bfa..dc46591165 100644 --- a/js/legacy/wnf.compressed.js +++ b/js/legacy/wnf.compressed.js @@ -109,7 +109,7 @@ span.set_working=function(){this.disabled=1;$di(this.loading_img);} span.done_working=function(){this.disabled=0;$dh(this.loading_img);} return span;}} function $ln(parent,label,onclick,style){return wn.ele.link({parent:parent,label:label,onclick:onclick,style:style})} -function $btn(parent,label,onclick,style,class,is_ajax){wn.require('lib/js/wn/ui/button.js');if(class==='green')class='cupid-green';return new wn.ui.Button({parent:parent,label:label,onclick:onclick,style:style,is_ajax:is_ajax,class:class}).btn;} +function $btn(parent,label,onclick,style,css_class,is_ajax){wn.require('lib/js/wn/ui/button.js');if(class==='green')class='cupid-green';return new wn.ui.Button({parent:parent,label:label,onclick:onclick,style:style,is_ajax:is_ajax,css_class:css_class}).btn;} function addEvent(ev,fn){if(isIE){document.attachEvent('on'+ev,function(){fn(window.event,window.event.srcElement);});}else{document.addEventListener(ev,function(e){fn(e,e.target);},true);}} $item_normal=function(ele){$y(ele,{padding:'6px 8px',cursor:'pointer',marginRight:'8px',whiteSpace:'nowrap',overflow:'hidden',borderBottom:'1px solid #DDD'});$bg(ele,'#FFF');$fg(ele,'#000');} $item_active=function(ele){$bg(ele,'#FE8');$fg(ele,'#000');} diff --git a/js/wn/ui/button.js b/js/wn/ui/button.js index 9fb7209415..29703ec63a 100644 --- a/js/wn/ui/button.js +++ b/js/wn/ui/button.js @@ -3,7 +3,7 @@ wn.ui.Button = function(args) { var me = this; $.extend(this, { make: function() { - me.btn = wn.dom.add(args.parent, 'button', args.class || 'clean-gray'); + me.btn = wn.dom.add(args.parent, 'button', args.css_class || 'clean-gray'); // ajax loading me.loading_img = wn.dom.add(args.parent,'img','',{margin:'0px 4px -2px 4px', display:'none'}); From 78c1cdd52473b7a104a785677ac996aa0e069e7c Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Thu, 15 Sep 2011 17:14:50 +0530 Subject: [PATCH 18/26] fixed 'class' issue in button --- js/legacy/utils/dom.js | 2 +- js/legacy/wnf.compressed.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/js/legacy/utils/dom.js b/js/legacy/utils/dom.js index 36492ebbcd..2cc999d6fe 100644 --- a/js/legacy/utils/dom.js +++ b/js/legacy/utils/dom.js @@ -73,7 +73,7 @@ function $ln(parent, label, onclick, style) { function $btn(parent, label, onclick, style, css_class, is_ajax) { wn.require('lib/js/wn/ui/button.js'); - if(class==='green') class='cupid-green'; + if(css_class==='green') css_class='cupid-green'; return new wn.ui.Button( {parent:parent, label:label, onclick:onclick, style:style, is_ajax: is_ajax, css_class: css_class} ).btn; diff --git a/js/legacy/wnf.compressed.js b/js/legacy/wnf.compressed.js index dc46591165..0eae79d029 100644 --- a/js/legacy/wnf.compressed.js +++ b/js/legacy/wnf.compressed.js @@ -109,7 +109,7 @@ span.set_working=function(){this.disabled=1;$di(this.loading_img);} span.done_working=function(){this.disabled=0;$dh(this.loading_img);} return span;}} function $ln(parent,label,onclick,style){return wn.ele.link({parent:parent,label:label,onclick:onclick,style:style})} -function $btn(parent,label,onclick,style,css_class,is_ajax){wn.require('lib/js/wn/ui/button.js');if(class==='green')class='cupid-green';return new wn.ui.Button({parent:parent,label:label,onclick:onclick,style:style,is_ajax:is_ajax,css_class:css_class}).btn;} +function $btn(parent,label,onclick,style,css_class,is_ajax){wn.require('lib/js/wn/ui/button.js');if(css_class==='green')css_class='cupid-green';return new wn.ui.Button({parent:parent,label:label,onclick:onclick,style:style,is_ajax:is_ajax,css_class:css_class}).btn;} function addEvent(ev,fn){if(isIE){document.attachEvent('on'+ev,function(){fn(window.event,window.event.srcElement);});}else{document.addEventListener(ev,function(e){fn(e,e.target);},true);}} $item_normal=function(ele){$y(ele,{padding:'6px 8px',cursor:'pointer',marginRight:'8px',whiteSpace:'nowrap',overflow:'hidden',borderBottom:'1px solid #DDD'});$bg(ele,'#FFF');$fg(ele,'#000');} $item_active=function(ele){$bg(ele,'#FE8');$fg(ele,'#000');} From 4757f96c0ae665411030cdf157e4353e2fade125 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Thu, 15 Sep 2011 17:31:06 +0530 Subject: [PATCH 19/26] docbrowser, images fixes --- js/legacy/utils/dom.js | 2 +- js/legacy/webpage/docbrowser.js | 5 +---- js/legacy/webpage/wntoolbar.js | 2 +- js/legacy/wnf.compressed.js | 2 +- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/js/legacy/utils/dom.js b/js/legacy/utils/dom.js index 2cc999d6fe..8b57bbcdd0 100644 --- a/js/legacy/utils/dom.js +++ b/js/legacy/utils/dom.js @@ -113,7 +113,7 @@ $item_set_working = function(ele) { } else { ele.disabled = 1; ele.loading_img = $a(ele.parentNode,'img','',{marginLeft:'4px',marginBottom:'-2px',display:'inline'}); - ele.loading_img.src = 'images/ui/button-load.gif'; + ele.loading_img.src = 'lib/images/ui/button-load.gif'; } } $item_done_working = function(ele) { diff --git a/js/legacy/webpage/docbrowser.js b/js/legacy/webpage/docbrowser.js index 814b425322..1e313b6f8c 100644 --- a/js/legacy/webpage/docbrowser.js +++ b/js/legacy/webpage/docbrowser.js @@ -193,10 +193,7 @@ ItemBrowser.prototype.make_toolbar = function() { if(this.dt_details.can_cancel) { this.delete_btn = $btn(this.main_toolbar, 'Delete', function() { me.delete_items(); }); } - - if(this.archive_btn && this.delete_btn) - $btn_join(this.archive_btn, this.delete_btn) - + // search box this.search_input = $a(this.main_toolbar, 'input', '', {width:'120px', marginLeft:'24px', border:'1px solid #AAA'}); this.search_btn = $btn(this.main_toolbar, 'Search', function() { me.run(); }, {marginLeft:'4px'}); diff --git a/js/legacy/webpage/wntoolbar.js b/js/legacy/webpage/wntoolbar.js index b7bc287a50..b6bd899b8c 100644 --- a/js/legacy/webpage/wntoolbar.js +++ b/js/legacy/webpage/wntoolbar.js @@ -259,7 +259,7 @@ function WNToolbar(parent) { $td(t,0,4).innerHTML = 'Logout'; this.menu_table_right = t; $y($td(t,0,5), {width:'18px'}); - this.spinner = $a($td(t,0,5),'img','',{display:'none'}); this.spinner.src = 'images/ui/spinner.gif'; + this.spinner = $a($td(t,0,5),'img','',{display:'none'}); this.spinner.src = 'lib/images/ui/spinner.gif'; } this.download_backup = function() { diff --git a/js/legacy/wnf.compressed.js b/js/legacy/wnf.compressed.js index 0eae79d029..8f5f752bae 100644 --- a/js/legacy/wnf.compressed.js +++ b/js/legacy/wnf.compressed.js @@ -115,7 +115,7 @@ $item_normal=function(ele){$y(ele,{padding:'6px 8px',cursor:'pointer',marginRigh $item_active=function(ele){$bg(ele,'#FE8');$fg(ele,'#000');} $item_selected=function(ele){$bg(ele,'#777');$fg(ele,'#FFF');} $item_pressed=function(ele){$bg(ele,'#F90');$fg(ele,'#FFF');} -$item_set_working=function(ele){if(ele.loading_img){$di(ele.loading_img)}else{ele.disabled=1;ele.loading_img=$a(ele.parentNode,'img','',{marginLeft:'4px',marginBottom:'-2px',display:'inline'});ele.loading_img.src='images/ui/button-load.gif';}} +$item_set_working=function(ele){if(ele.loading_img){$di(ele.loading_img)}else{ele.disabled=1;ele.loading_img=$a(ele.parentNode,'img','',{marginLeft:'4px',marginBottom:'-2px',display:'inline'});ele.loading_img.src='lib/images/ui/button-load.gif';}} $item_done_working=function(ele){ele.disabled=0;if(ele.loading_img){$dh(ele.loading_img)};} function set_opacity(ele,ieop){var op=ieop/100;if(ele.filters){try{ele.filters.item("DXImageTransform.Microsoft.Alpha").opacity=ieop;}catch(e){ele.style.filter='progid:DXImageTransform.Microsoft.Alpha(opacity='+ieop+')';}}else{ele.style.opacity=op;}} function set_gradient(ele,from,to){var no_gradient=0;if(isIE)no_gradient=1;if(isFF&&ffversion<3.6)no_gradient=1;if(no_gradient){var rgb_from=get_rgb(from.substr(1));var rgb_to=get_rgb(to.substr(1));$y(ele,{backgroundColor:'#' From c637e1bb02f5ab59722dd4179faa9385d0ffb7fb Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Thu, 15 Sep 2011 18:04:10 +0530 Subject: [PATCH 20/26] report builder sort fix --- js/legacy/report.compressed.js | 2 +- js/legacy/widgets/report_builder/report_builder.js | 10 +++++++--- py/build/version.py | 5 +++++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/js/legacy/report.compressed.js b/js/legacy/report.compressed.js index 68a7c04c73..3f12e18b20 100644 --- a/js/legacy/report.compressed.js +++ b/js/legacy/report.compressed.js @@ -52,7 +52,7 @@ _r.ReportBuilder.prototype.setup_dt_filters_and_cols=function(fl,dt){var me=this var sf_list=locals.DocType[dt].search_fields?locals.DocType[dt].search_fields.split(','):[];for(var i in sf_list)sf_list[i]=strip(sf_list[i]);for(var i=0;i Date: Fri, 16 Sep 2011 14:36:54 +0530 Subject: [PATCH 21/26] button and other fixes --- css/legacy/build.json | 20 +++++ css/legacy/jquery-ui.css | 34 ++++---- .../jquery-ui}/ui-bg_flat_0_aaaaaa_40x100.png | Bin .../ui-bg_flat_75_ffffff_40x100.png | Bin .../ui-bg_glass_55_fbf9ee_1x400.png | Bin .../ui-bg_glass_95_fef1ec_1x400.png | Bin .../ui-bg_highlight-hard_65_ffffff_1x100.png | Bin .../ui-bg_highlight-hard_75_dadada_1x100.png | Bin .../ui-bg_highlight-hard_75_e6e6e6_1x100.png | Bin .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin .../jquery-ui}/ui-icons_222222_256x240.png | Bin .../jquery-ui}/ui-icons_2e83ff_256x240.png | Bin .../jquery-ui}/ui-icons_454545_256x240.png | Bin .../jquery-ui}/ui-icons_888888_256x240.png | Bin .../jquery-ui}/ui-icons_cd0a0a_256x240.png | Bin js/legacy/form.compressed.js | 6 -- js/legacy/widgets/form/fields.js | 79 +++++++++++++++++- js/legacy/widgets/form/form_fields.js | 74 ---------------- js/wn/ui/button.js | 3 +- py/build/version.py | 7 +- wnf.py | 67 +++++++++------ 21 files changed, 165 insertions(+), 125 deletions(-) create mode 100644 css/legacy/build.json rename {css/legacy/images => images/jquery-ui}/ui-bg_flat_0_aaaaaa_40x100.png (100%) rename {css/legacy/images => images/jquery-ui}/ui-bg_flat_75_ffffff_40x100.png (100%) rename {css/legacy/images => images/jquery-ui}/ui-bg_glass_55_fbf9ee_1x400.png (100%) rename {css/legacy/images => images/jquery-ui}/ui-bg_glass_95_fef1ec_1x400.png (100%) rename {css/legacy/images => images/jquery-ui}/ui-bg_highlight-hard_65_ffffff_1x100.png (100%) rename {css/legacy/images => images/jquery-ui}/ui-bg_highlight-hard_75_dadada_1x100.png (100%) rename {css/legacy/images => images/jquery-ui}/ui-bg_highlight-hard_75_e6e6e6_1x100.png (100%) rename {css/legacy/images => images/jquery-ui}/ui-bg_highlight-soft_75_cccccc_1x100.png (100%) rename {css/legacy/images => images/jquery-ui}/ui-icons_222222_256x240.png (100%) rename {css/legacy/images => images/jquery-ui}/ui-icons_2e83ff_256x240.png (100%) rename {css/legacy/images => images/jquery-ui}/ui-icons_454545_256x240.png (100%) rename {css/legacy/images => images/jquery-ui}/ui-icons_888888_256x240.png (100%) rename {css/legacy/images => images/jquery-ui}/ui-icons_cd0a0a_256x240.png (100%) diff --git a/css/legacy/build.json b/css/legacy/build.json new file mode 100644 index 0000000000..b8484a9e20 --- /dev/null +++ b/css/legacy/build.json @@ -0,0 +1,20 @@ +{ + "default.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" + ] +} \ No newline at end of file diff --git a/css/legacy/jquery-ui.css b/css/legacy/jquery-ui.css index c7ab34740c..09cefed7f1 100755 --- a/css/legacy/jquery-ui.css +++ b/css/legacy/jquery-ui.css @@ -50,26 +50,26 @@ .ui-widget { font-family: Arial,sans-serif; font-size: 1em; } .ui-widget .ui-widget { font-size: 1em; } .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Arial,sans-serif; font-size: 1em; } -.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; } +.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(lib/images/jquery-ui/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; } .ui-widget-content a { color: #222222; } -.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; } +.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(lib/images/jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; } .ui-widget-header a { color: #222222; } /* Interaction states ----------------------------------*/ -.ui-state-default, .ui-widget-content .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_highlight-hard_75_e6e6e6_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #222; } +.ui-state-default, .ui-widget-content .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(lib/images/jquery-ui/ui-bg_highlight-hard_75_e6e6e6_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #222; } .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #222; text-decoration: none; } -.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_highlight-hard_75_dadada_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #000; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus { border: 1px solid #999999; background: #dadada url(lib/images/jquery-ui/ui-bg_highlight-hard_75_dadada_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #000; } .ui-state-hover a, .ui-state-hover a:hover { color: #000; text-decoration: none; } -.ui-state-active, .ui-widget-content .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_highlight-hard_65_ffffff_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #000; } +.ui-state-active, .ui-widget-content .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(lib/images/jquery-ui/ui-bg_highlight-hard_65_ffffff_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #000; } .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #000; text-decoration: none; } .ui-widget :active { outline: none; } /* Interaction Cues ----------------------------------*/ -.ui-state-highlight, .ui-widget-content .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; } +.ui-state-highlight, .ui-widget-content .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(lib/images/jquery-ui/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; } .ui-state-highlight a, .ui-widget-content .ui-state-highlight a { color: #363636; } -.ui-state-error, .ui-widget-content .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; } +.ui-state-error, .ui-widget-content .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(lib/images/jquery-ui/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; } .ui-state-error a, .ui-widget-content .ui-state-error a { color: #cd0a0a; } .ui-state-error-text, .ui-widget-content .ui-state-error-text { color: #cd0a0a; } .ui-priority-primary, .ui-widget-content .ui-priority-primary { font-weight: bold; } @@ -80,14 +80,14 @@ ----------------------------------*/ /* states and images */ -.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } -.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } -.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } -.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); } -.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } -.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } -.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); } -.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); } +.ui-icon { width: 16px; height: 16px; background-image: url(lib/images/jquery-ui/ui-icons_222222_256x240.png); } +.ui-widget-content .ui-icon {background-image: url(lib/images/jquery-ui/ui-icons_222222_256x240.png); } +.ui-widget-header .ui-icon {background-image: url(lib/images/jquery-ui/ui-icons_222222_256x240.png); } +.ui-state-default .ui-icon { background-image: url(lib/images/jquery-ui/ui-icons_888888_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(lib/images/jquery-ui/ui-icons_454545_256x240.png); } +.ui-state-active .ui-icon {background-image: url(lib/images/jquery-ui/ui-icons_454545_256x240.png); } +.ui-state-highlight .ui-icon {background-image: url(lib/images/jquery-ui/ui-icons_2e83ff_256x240.png); } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(lib/images/jquery-ui/ui-icons_cd0a0a_256x240.png); } /* positioning */ .ui-icon-carat-1-n { background-position: 0 0; } @@ -282,8 +282,8 @@ .ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; } /* Overlays */ -.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); } -.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* Button +.ui-widget-overlay { background: #aaaaaa url(lib/images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); } +.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(lib/images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* Button ----------------------------------*/ .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ diff --git a/css/legacy/images/ui-bg_flat_0_aaaaaa_40x100.png b/images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png similarity index 100% rename from css/legacy/images/ui-bg_flat_0_aaaaaa_40x100.png rename to images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/css/legacy/images/ui-bg_flat_75_ffffff_40x100.png b/images/jquery-ui/ui-bg_flat_75_ffffff_40x100.png similarity index 100% rename from css/legacy/images/ui-bg_flat_75_ffffff_40x100.png rename to images/jquery-ui/ui-bg_flat_75_ffffff_40x100.png diff --git a/css/legacy/images/ui-bg_glass_55_fbf9ee_1x400.png b/images/jquery-ui/ui-bg_glass_55_fbf9ee_1x400.png similarity index 100% rename from css/legacy/images/ui-bg_glass_55_fbf9ee_1x400.png rename to images/jquery-ui/ui-bg_glass_55_fbf9ee_1x400.png diff --git a/css/legacy/images/ui-bg_glass_95_fef1ec_1x400.png b/images/jquery-ui/ui-bg_glass_95_fef1ec_1x400.png similarity index 100% rename from css/legacy/images/ui-bg_glass_95_fef1ec_1x400.png rename to images/jquery-ui/ui-bg_glass_95_fef1ec_1x400.png diff --git a/css/legacy/images/ui-bg_highlight-hard_65_ffffff_1x100.png b/images/jquery-ui/ui-bg_highlight-hard_65_ffffff_1x100.png similarity index 100% rename from css/legacy/images/ui-bg_highlight-hard_65_ffffff_1x100.png rename to images/jquery-ui/ui-bg_highlight-hard_65_ffffff_1x100.png diff --git a/css/legacy/images/ui-bg_highlight-hard_75_dadada_1x100.png b/images/jquery-ui/ui-bg_highlight-hard_75_dadada_1x100.png similarity index 100% rename from css/legacy/images/ui-bg_highlight-hard_75_dadada_1x100.png rename to images/jquery-ui/ui-bg_highlight-hard_75_dadada_1x100.png diff --git a/css/legacy/images/ui-bg_highlight-hard_75_e6e6e6_1x100.png b/images/jquery-ui/ui-bg_highlight-hard_75_e6e6e6_1x100.png similarity index 100% rename from css/legacy/images/ui-bg_highlight-hard_75_e6e6e6_1x100.png rename to images/jquery-ui/ui-bg_highlight-hard_75_e6e6e6_1x100.png diff --git a/css/legacy/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/images/jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100.png similarity index 100% rename from css/legacy/images/ui-bg_highlight-soft_75_cccccc_1x100.png rename to images/jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100.png diff --git a/css/legacy/images/ui-icons_222222_256x240.png b/images/jquery-ui/ui-icons_222222_256x240.png similarity index 100% rename from css/legacy/images/ui-icons_222222_256x240.png rename to images/jquery-ui/ui-icons_222222_256x240.png diff --git a/css/legacy/images/ui-icons_2e83ff_256x240.png b/images/jquery-ui/ui-icons_2e83ff_256x240.png similarity index 100% rename from css/legacy/images/ui-icons_2e83ff_256x240.png rename to images/jquery-ui/ui-icons_2e83ff_256x240.png diff --git a/css/legacy/images/ui-icons_454545_256x240.png b/images/jquery-ui/ui-icons_454545_256x240.png similarity index 100% rename from css/legacy/images/ui-icons_454545_256x240.png rename to images/jquery-ui/ui-icons_454545_256x240.png diff --git a/css/legacy/images/ui-icons_888888_256x240.png b/images/jquery-ui/ui-icons_888888_256x240.png similarity index 100% rename from css/legacy/images/ui-icons_888888_256x240.png rename to images/jquery-ui/ui-icons_888888_256x240.png diff --git a/css/legacy/images/ui-icons_cd0a0a_256x240.png b/images/jquery-ui/ui-icons_cd0a0a_256x240.png similarity index 100% rename from css/legacy/images/ui-icons_cd0a0a_256x240.png rename to images/jquery-ui/ui-icons_cd0a0a_256x240.png diff --git a/js/legacy/form.compressed.js b/js/legacy/form.compressed.js index 8f20026344..315acfec24 100644 --- a/js/legacy/form.compressed.js +++ b/js/legacy/form.compressed.js @@ -233,12 +233,6 @@ for(var dn in this.images)if(dn!=this.docname)$dh(this.images[dn]);var doc=local $w(img,allow_width+'px');}else{$ds(this.no_img);}} _f.ImageField.prototype.set_disp=function(val){} _f.ImageField.prototype.set=function(val){} -_f.ButtonField=function(){};_f.ButtonField.prototype=new Field();_f.ButtonField.prototype.with_label=0;_f.ButtonField.prototype.init=function(){this.prev_button=null;if(!this.frm)return;if(cur_frm&&cur_frm.fields[cur_frm.fields.length-1]&&cur_frm.fields[cur_frm.fields.length-1].df.fieldtype=='Button'){this.make_body=function(){this.prev_button=cur_frm.fields[cur_frm.fields.length-1];if(!this.prev_button.prev_button){this.prev_button.button_area=$a(this.prev_button.input_area,'span');} -this.wrapper=this.prev_button.wrapper;this.input_area=this.prev_button.input_area;this.disp_area=this.prev_button.disp_area;this.button_area=$a(this.prev_button.input_area,'span');}}} -_f.ButtonField.prototype.make_input=function(){var me=this;if(!this.prev_button){$y(this.input_area,{marginTop:'4px',marginBottom:'4px'});} -if(!this.button_area)this.button_area=$a(this.input_area,'span','',{marginRight:'4px'});this.input=$btn(this.button_area,me.df.label.substr(0,20)+((me.df.label.length>20)?'..':''),null,{width:'170px',fontWeight:'bold'},null,1) -this.input.onclick=function(){if(me.not_in_form)return;this.set_disabled();if(cur_frm.cscript[me.df.label]&&(!me.in_filter)){cur_frm.runclientscript(me.df.label,me.doctype,me.docname);this.set_enabled();}else{this.set_working();cur_frm.runscript(me.df.options,me);}}} -_f.ButtonField.prototype.hide=function(){$dh(this.button_area);};_f.ButtonField.prototype.show=function(){$ds(this.button_area);};_f.ButtonField.prototype.set=function(v){};_f.ButtonField.prototype.set_disp=function(val){} _f.TableField=function(){};_f.TableField.prototype=new Field();_f.TableField.prototype.with_label=0;_f.TableField.prototype.make_body=function(){if(this.perm[this.df.permlevel]&&this.perm[this.df.permlevel][READ]){if(this.df.description){this.desc_area=$a(this.parent,'div','field_description','',this.df.description)} this.grid=new _f.FormGrid(this);if(this.frm)this.frm.grids[this.frm.grids.length]=this;this.grid.make_buttons();}} _f.TableField.prototype.refresh=function(){if(!this.grid)return;var st=this.get_status();if(!this.df['default']) diff --git a/js/legacy/widgets/form/fields.js b/js/legacy/widgets/form/fields.js index 75aa39f1d2..3a299fd043 100644 --- a/js/legacy/widgets/form/fields.js +++ b/js/legacy/widgets/form/fields.js @@ -495,6 +495,10 @@ DateField.prototype.make_input = function() { if(!this.user_fmt)this.user_fmt = 'dd-mm-yy'; this.input = $a(this.input_area, 'input'); + + // load the style + wn.require('lib/css/legacy/jquery-ui.css'); + $(this.input).datepicker({ dateFormat: me.user_fmt.replace('yyyy','yy'), altFormat:'yy-mm-dd', @@ -1153,6 +1157,79 @@ function makeinput_popup(me, iconsrc, iconsrc1, iconsrc2) { var tmpid = 0; +// ====================================================================================== + +_f.ButtonField = function() { }; +_f.ButtonField.prototype = new Field(); +_f.ButtonField.prototype.with_label = 0; +_f.ButtonField.prototype.init = function() { + this.prev_button = null; + // if previous field is a button, add it to the same div! + + // button-set structure + // + wrapper (1st button) + // + input_area + // + button_area + // + button_area + // + button_area + + if(!this.frm) return; + + if(cur_frm && + cur_frm.fields[cur_frm.fields.length-1] && + cur_frm.fields[cur_frm.fields.length-1].df.fieldtype=='Button') { + + this.make_body = function() { + this.prev_button = cur_frm.fields[cur_frm.fields.length-1]; + if(!this.prev_button.prev_button) { + // first button, make the button area + this.prev_button.button_area = $a(this.prev_button.input_area, 'span'); + } + this.wrapper = this.prev_button.wrapper; + this.input_area = this.prev_button.input_area; + this.disp_area = this.prev_button.disp_area; + + // all buttons in the same input_area + this.button_area = $a(this.prev_button.input_area, 'span'); + } + } +} +_f.ButtonField.prototype.make_input = function() { var me = this; + if(!this.prev_button) { + $y(this.input_area,{marginTop:'4px', marginBottom: '4px'}); + } + + // make a button area for one button + if(!this.button_area) this.button_area = $a(this.input_area, 'span','',{marginRight:'4px'}); + + // make the input + this.input = $btn(this.button_area, + me.df.label.substr(0,20) + ((me.df.label.length>20) ? '..' : ''), null, {width:'170px', fontWeight:'bold'}, null, 1) + + this.input.onclick = function() { + if(me.not_in_form) return; + this.disabled = true; + if(cur_frm.cscript[me.df.label] && (!me.in_filter)) { + cur_frm.runclientscript(me.df.label, me.doctype, me.docname); + this.disabled = false; + } else { + cur_frm.runscript(me.df.options, me); + this.disabled = false; + } + } +} + +_f.ButtonField.prototype.hide = function() { + $dh(this.button_area); +}; + +_f.ButtonField.prototype.show = function() { + $ds(this.button_area); +}; + + +_f.ButtonField.prototype.set = function(v) { }; // No Setter +_f.ButtonField.prototype.set_disp = function(val) { } // No Disp on readonly // ====================================================================================== @@ -1175,11 +1252,11 @@ function make_field(docfield, doctype, parent, frm, in_grid, hide_label) { // Fa case 'text':var f = new TextField(); break; case 'small text':var f = new TextField(); break; case 'select':var f = new SelectField(); break; + case 'button':var f = new _f.ButtonField(); break; // form fields case 'code':var f = new _f.CodeField(); break; case 'text editor':var f = new _f.CodeField(); break; - case 'button':var f = new _f.ButtonField(); break; case 'table':var f = new _f.TableField(); break; case 'section break':var f= new _f.SectionBreak(); break; case 'column break':var f= new _f.ColumnBreak(); break; diff --git a/js/legacy/widgets/form/form_fields.js b/js/legacy/widgets/form/form_fields.js index 643cd7c5e7..1b90d3a86e 100644 --- a/js/legacy/widgets/form/form_fields.js +++ b/js/legacy/widgets/form/form_fields.js @@ -250,80 +250,6 @@ _f.ImageField.prototype.onrefresh = function() { _f.ImageField.prototype.set_disp = function (val) { } _f.ImageField.prototype.set = function (val) { } -// ====================================================================================== - -_f.ButtonField = function() { }; -_f.ButtonField.prototype = new Field(); -_f.ButtonField.prototype.with_label = 0; -_f.ButtonField.prototype.init = function() { - this.prev_button = null; - // if previous field is a button, add it to the same div! - - // button-set structure - // + wrapper (1st button) - // + input_area - // + button_area - // + button_area - // + button_area - - if(!this.frm) return; - - if(cur_frm && - cur_frm.fields[cur_frm.fields.length-1] && - cur_frm.fields[cur_frm.fields.length-1].df.fieldtype=='Button') { - - this.make_body = function() { - this.prev_button = cur_frm.fields[cur_frm.fields.length-1]; - if(!this.prev_button.prev_button) { - // first button, make the button area - this.prev_button.button_area = $a(this.prev_button.input_area, 'span'); - } - this.wrapper = this.prev_button.wrapper; - this.input_area = this.prev_button.input_area; - this.disp_area = this.prev_button.disp_area; - - // all buttons in the same input_area - this.button_area = $a(this.prev_button.input_area, 'span'); - } - } -} -_f.ButtonField.prototype.make_input = function() { var me = this; - if(!this.prev_button) { - $y(this.input_area,{marginTop:'4px', marginBottom: '4px'}); - } - - // make a button area for one button - if(!this.button_area) this.button_area = $a(this.input_area, 'span','',{marginRight:'4px'}); - - // make the input - this.input = $btn(this.button_area, - me.df.label.substr(0,20) + ((me.df.label.length>20) ? '..' : ''), null, {width:'170px', fontWeight:'bold'}, null, 1) - - this.input.onclick = function() { - if(me.not_in_form) return; - this.set_disabled(); - if(cur_frm.cscript[me.df.label] && (!me.in_filter)) { - cur_frm.runclientscript(me.df.label, me.doctype, me.docname); - this.set_enabled(); - } else { - this.set_working(); - cur_frm.runscript(me.df.options, me); - } - } -} - -_f.ButtonField.prototype.hide = function() { - $dh(this.button_area); -}; - -_f.ButtonField.prototype.show = function() { - $ds(this.button_area); -}; - - -_f.ButtonField.prototype.set = function(v) { }; // No Setter -_f.ButtonField.prototype.set_disp = function(val) { } // No Disp on readonly - // Table // ====================================================================================== diff --git a/js/wn/ui/button.js b/js/wn/ui/button.js index 29703ec63a..6af75a640d 100644 --- a/js/wn/ui/button.js +++ b/js/wn/ui/button.js @@ -16,7 +16,8 @@ wn.ui.Button = function(args) { // onclick me.btn.user_onclick = args.onclick; $(me.btn).bind('click', function() { - if(!this.disabled) this.user_onclick(this); + if(!this.disabled && this.user_onclick) + this.user_onclick(this); }) // bc diff --git a/py/build/version.py b/py/build/version.py index da5355bc34..cefc3d3b79 100644 --- a/py/build/version.py +++ b/py/build/version.py @@ -232,7 +232,12 @@ class VersionControl: """ merges with two repositories """ - for d in self.version_diff(source, target): + diff = self.version_diff(source, target) + if not len(diff): + print 'nothing to merge' + return + + for d in diff: for f in source.sql("select * from files where version=?", d, as_dict=1): print 'merging %s' % f['fname'] target.add(**f) diff --git a/wnf.py b/wnf.py index a904940bda..0c7934c4f9 100755 --- a/wnf.py +++ b/wnf.py @@ -11,9 +11,30 @@ def print_help(): print "Usage:" print "python lib/wnf.py build : scan all folders and commit versions with latest changes" print "python lib/wnf.py setup : setup the local system (from master or fresh)" - print "python lib/wnf.py merge [local|master] : merge from source (master or local)" + print "python lib/wnf.py merge : merge from local into master" print "python lib/wnf.py log : list last 10 commits" + print "python lib/wnf.py pull : pull from git" + +def setup(): + import os, sys + if not os.path.exists('versions-local.db'): + if os.path.exists('versions-master.db'): + import shutil + shutil.copyfile('versions-master.db', 'versions-local.db') + print "created versions-local.db from versions-master.db" + else: + vc = version.VersionControl() + vc.repo.setup() + vc.close() + print "created fresh versions-local.db" + else: + if len(sys.argv)==3 and sys.argv[2]=='master': + import shutil + shutil.copyfile('versions-local.db', 'versions-master.db') + print "created versions-master.db from versions-local.db" + else: + print "versions-local.db already exists. Nothing to do." def run(): sys.path.append('lib') sys.path.append('lib/py') @@ -34,33 +55,11 @@ def run(): elif cmd=='merge': vc = version.VersionControl() vc.setup_master() - if sys.argv[2]=='local': - vc.merge(vc.repo, vc.master) - elif sys.argv[2]=='master': - vc.merge(vc.master, vc.repo) - else: - print "usage: wnf merge local|master" - print "help: parameter (local or master) is the source" + vc.merge(vc.repo, vc.master) vc.close() elif cmd=='setup': - if not os.path.exists('versions-local.db'): - if os.path.exists('versions-master.db'): - import shutil - shutil.copyfile('versions-master.db', 'versions-local.db') - print "created versions-local.db from versions-master.db" - else: - vc = version.VersionControl() - vc.repo.setup() - vc.close() - print "created fresh versions-local.db" - else: - if len(sys.argv)==3 and sys.argv[2]=='master': - import shutil - shutil.copyfile('versions-local.db', 'versions-master.db') - print "created versions-master.db from versions-local.db" - else: - print "versions-local.db already exists. Nothing to do." + setup() elif cmd=='clear_startup': # experimental @@ -82,6 +81,24 @@ def run(): for f in vc.repo.sql("select fname from files where fname like ?", ((sys.argv[2] + '%'),)): print f[0] vc.close() + + # pull from remote and merge with local + elif cmd=='gitpull': + branch = 'master' + if len(sys.argv)>2: + branch = sys.argv[2] + + print "pulling erpnext" + os.system('git pull origin %s' % branch) + vc = version.VersionControl() + vc.setup_master() + vc.merge(vc.master, vc.repo) + vc.close() + + print "pulling framework" + os.chdir('lib') + os.system('git pull origin %s' % branch) + if __name__=='__main__': run() \ No newline at end of file From 42358b1d905bdeaa2f492d59366cd8ca7e059aa6 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 16 Sep 2011 15:36:51 +0530 Subject: [PATCH 22/26] fixes --- js/legacy/widgets/form/fields.js | 2 +- wnf.py | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/js/legacy/widgets/form/fields.js b/js/legacy/widgets/form/fields.js index 3a299fd043..1678f81420 100644 --- a/js/legacy/widgets/form/fields.js +++ b/js/legacy/widgets/form/fields.js @@ -1208,7 +1208,7 @@ _f.ButtonField.prototype.make_input = function() { var me = this; this.input.onclick = function() { if(me.not_in_form) return; - this.disabled = true; + this.disabled = 'disabled'; if(cur_frm.cscript[me.df.label] && (!me.in_filter)) { cur_frm.runclientscript(me.df.label, me.doctype, me.docname); this.disabled = false; diff --git a/wnf.py b/wnf.py index 0c7934c4f9..6bfb2d0c6d 100755 --- a/wnf.py +++ b/wnf.py @@ -58,6 +58,12 @@ def run(): vc.merge(vc.repo, vc.master) vc.close() + elif cmd=='merge-local': + vc = version.VersionControl() + vc.setup_master() + vc.merge(vc.master, vc.repo) + vc.close() + elif cmd=='setup': setup() From 10334ac98f62a40a4fe0bf71e31193c5150aac11 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 16 Sep 2011 16:22:23 +0530 Subject: [PATCH 23/26] added missing icons --- images/icons/accept.gif | Bin 0 -> 1024 bytes images/icons/application.gif | Bin 0 -> 600 bytes images/icons/arrow_down.gif | Bin 0 -> 312 bytes images/icons/arrow_up.gif | Bin 0 -> 311 bytes images/icons/bullet_arrow_down.png | Bin 0 -> 201 bytes images/icons/error.gif | Bin 0 -> 994 bytes images/icons/lightbulb.gif | Bin 0 -> 1022 bytes images/icons/link.png | Bin 0 -> 343 bytes images/icons/paperclip.gif | Bin 0 -> 384 bytes images/icons/resultset_first.gif | Bin 0 -> 553 bytes images/icons/resultset_last.gif | Bin 0 -> 553 bytes images/icons/resultset_next.gif | Bin 0 -> 303 bytes images/icons/resultset_previous.gif | Bin 0 -> 304 bytes images/icons/sort_asc.gif | Bin 0 -> 335 bytes images/icons/sort_desc.gif | Bin 0 -> 327 bytes images/ui/no_img_f.gif | Bin 0 -> 2662 bytes images/ui/no_img_m.gif | Bin 0 -> 1996 bytes images/ui/square_loading.gif | Bin 0 -> 404 bytes images/ui/tick.gif | Bin 0 -> 207 bytes js/legacy/form.compressed.js | 2 +- js/legacy/globals.js | 4 ---- js/legacy/report.compressed.js | 8 +++---- js/legacy/utils/datatype.js | 2 +- js/legacy/utils/dom.js | 6 ++--- js/legacy/utils/msgprint.js | 6 ++--- js/legacy/webpage/docbrowser.js | 2 +- js/legacy/widgets/form/attachments.js | 1 - js/legacy/widgets/form/fields.js | 6 ++--- js/legacy/widgets/form/form.js | 5 ++-- js/legacy/widgets/listing.js | 6 ++--- js/legacy/widgets/report_builder/datatable.js | 8 +++---- js/legacy/wn/widgets/listing.js | 2 +- js/legacy/wn/widgets/page_sidebar.js | 2 +- js/legacy/wnf.compressed.js | 22 +++++++++--------- 34 files changed, 38 insertions(+), 44 deletions(-) create mode 100644 images/icons/accept.gif create mode 100644 images/icons/application.gif create mode 100644 images/icons/arrow_down.gif create mode 100644 images/icons/arrow_up.gif create mode 100755 images/icons/bullet_arrow_down.png create mode 100644 images/icons/error.gif create mode 100644 images/icons/lightbulb.gif create mode 100755 images/icons/link.png create mode 100644 images/icons/paperclip.gif create mode 100644 images/icons/resultset_first.gif create mode 100644 images/icons/resultset_last.gif create mode 100644 images/icons/resultset_next.gif create mode 100644 images/icons/resultset_previous.gif create mode 100644 images/icons/sort_asc.gif create mode 100644 images/icons/sort_desc.gif create mode 100644 images/ui/no_img_f.gif create mode 100644 images/ui/no_img_m.gif create mode 100644 images/ui/square_loading.gif create mode 100644 images/ui/tick.gif diff --git a/images/icons/accept.gif b/images/icons/accept.gif new file mode 100644 index 0000000000000000000000000000000000000000..29f3ed7c97eb2e5bd17a7e6bab98d696377cfda0 GIT binary patch literal 1024 zcmZ?wbhEHb6krfw_&%Ru-JPX#Z%mqSuD<9*M)SGyKYxF3f4F|@!*x|>a`TQPIW08y z+@NmXYwfboIA>eftmEx7PPc8lxOLj;wk@}o)$U1Kdw+KQj?7u7+G7q_7aUKWu%~bR zon_CzK797&@#5>#ChqKCeR=lWbKTo6Y;8YOwD9`W!0mdKC$n$9xnkdKU4N?J%dby0 zyHXy!eqg;&z4BnntSh~RJEP0@B-9|3oj-CkkZZ+PIz&iq4(r6)4xUz)J}=GOefiTPV2bGL_Yxw$lNYefFmh~ndE zIY+&>-d_`Q*w(b(@Zp<>wcFFSKin|$Y?u8^o3fLc-6tyEet(^I)N{&-{-V>Nn&qme z-|XLbclqX#$!XmLDils2^$_i=Vfo6|K!7s z$3S&5b~>3_CysS9Ff(!pa1CI4JIO94&@9fw!C(yl Dux)$+ literal 0 HcmV?d00001 diff --git a/images/icons/application.gif b/images/icons/application.gif new file mode 100644 index 0000000000000000000000000000000000000000..457867741c2a7efe87fe819ddb23911e9b9015be GIT binary patch literal 600 zcmZ?wbhEHb6krfwcoxm@`|sZ`KYsTtJofkh|H?%-{`~#>>)*d^hj0J<{pZuy-`{@y zj;h&Iw&3c|KYvQ+UHS6;cUt#>uRni(|M@$(cx7PW%7%HzCvCacw)Spd(aM}DCttkz z_U-rYH=lmI`tUuY?{MYfn-SF;|NZ~}>HDuAfBt;^@%!DEAAkP;53gKTH0%8LU%#Kc z`uy?R@8tHqRm<+g)NM^@-Idt7yLj%UswKB#>b89P{yV;TXIR~5*{U@SoL&3~*`P0u-ExG;u_n#ks|9<%T zvtZ)El#YGHb1uIA^gVCNsaNm6-FyD&_rHJn(@y{T^CzTq&9A?I|NQ$mY3GaT<#+yr z0RtU@;!hSv28L(`9gv-%IALJl+7R8;+|nA&E*7b4#KOa8sNotcDasx#9x-#)>{;H? zkqZ_sS|kwd9<^fSs+Bs?@=+YlLi|czHUZXJfl>O=EKy-099$~=+NyrCQc>p7JW;F+ zVZ0uKjCP#%GEsWbd{N;H7cG>9u96B F0|05c7Qp}j literal 0 HcmV?d00001 diff --git a/images/icons/arrow_down.gif b/images/icons/arrow_down.gif new file mode 100644 index 0000000000000000000000000000000000000000..cf389527b882764533603168a01c79fa43f624e4 GIT binary patch literal 312 zcmV-80muGFNk%w1VGsZi0M$PLON~Zz#%E1|N^-?!N|Hj8%Zpi$Rb#SQk;;lTdNDI{ zE_}asSE5c|tyY@Plb_O-U8+;p=+;-6QKQtFaKdF%o=R%FUx2}Sg2H`Fl|@jRNJV@? zS*B27kY0|-hg+3aZN6elkVE_Y`c02WhsA+Pj74a;U6{_0oY0h8j8}fZd4S%PmCTNb#)A6$`fRObJ%To&)0jhwJW!HLQ-x5e*PvyzTc_5ZRhmwv)SP^< zcmMzYA^8LW002J#EC2ui01yBW000J6z@KnPEE<2U00nd`4p=!;lla>84%4A!QiEiL zx(AB!{WTmXO_>8L5Xu#V$5zg`Vzh6BM_MJaJ|Qz07dHwWO(Gu>DhmJ`GFb*AB?4tX KDL9u|K>$1BSBW?P literal 0 HcmV?d00001 diff --git a/images/icons/arrow_up.gif b/images/icons/arrow_up.gif new file mode 100644 index 0000000000000000000000000000000000000000..92378d54ee6a820e9f18cefb91ccead47de68827 GIT binary patch literal 311 zcmV-70m%MGNk%w1VGsZi0M$PLCS@WkYbJKMZu|ZFg~NV1eKY+2`!;$pKZQ9xf;L8t zKiTQmrPQ35&XAhVlbq0$Q=Up$rcf|)D~8N`gT{G7iac|{XDx0hr`Dc}&w_--dzaIW zpVF3q!FnQK9;4KngSmW@%Zpv7RVisDC1fE?l|_-tij2pFg~)qltX+M;bAG^ihsu1R z)0l$7eU8b8U#(V#!+nv^i8FOAiN=DJ%#M1!bbP;dkNRD!{BW1)On zF%c;G<8dCT1^EYaG<54A*NR)UOLedaSA;I2XP249TIT`D>nggGd4Q_aTg;b J9&uzr06Pmui*^72 literal 0 HcmV?d00001 diff --git a/images/icons/bullet_arrow_down.png b/images/icons/bullet_arrow_down.png new file mode 100755 index 0000000000000000000000000000000000000000..9b23c06d7b4f4689dc8c9fd4e9d4d1f199fe376f GIT binary patch literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^zbpD<_bdI{u9mbgZg z1m~xflqVLYGB~E>C#5QQ<|d}62BjvZR2H60wE-%M_H=O!(Kw&{<9vg>5sxM-`@i?U z_W%6<>VNmY^FQu?=k0EK8(;qS{{MRQfQxhfe|^4DBSLrMi_=~IrT?G*6aRH>fZ%Fr xHSdzT`JeW`iC!n;=N{%MvhUm!=_W-^hCUIl<$=usRzPbQJYD@<);T3K0RSKzPZ9tC literal 0 HcmV?d00001 diff --git a/images/icons/error.gif b/images/icons/error.gif new file mode 100644 index 0000000000000000000000000000000000000000..4682b63007c89fae09f6640e1a968a073d98b90d GIT binary patch literal 994 zcmZ?wbhEHb6krfw_};*9b)oIQ-*5l@e)sRs`)iBszTS%X_xshqKVQDwin+ST?*G5P zzrQ^G_xt_f9Jc2NYJa}F{`Gdu&zDm^T?_qix&OnZo-emz|NVaR_t)1i*Zuzedh_v0 z>zAA1pKtV@Ea!c=%JBE6!+*Zrczrtj)3uOqx1+w?ivDyh;``H`|9*XZd!q2y`>j8o zPq{fm`Na;auQ!6uw~GD$_w&u+sDHnnzd8{2bbrVDb8TPluY7%O^{INT7l+$F-w1!O zT=&{!g-_QbzC1qg{l($GKi~d(fA!P#uus>+|9rjj_t&$3f4+Tvyzkqcn7=>n{r&m; z>&=i$lU?pF(SEVZ_4lV+Z%tCF$iDo6LW`p7(5<$N&HT8Aidtg@EEu7Dfh!1_m9F6F_-_fnz@dBd3hV zh6RoeTpun37Hm*p=S}!xB2%GsN>(9zl@H4iweC3*!Wlj#haUN`*h|{jWN<7##?Qpk zmawqs0!x>8vXF{_aD)HsCf8Xtia|ir6_cteb~+gFu`;I!>|qpOVG?4uVAFdM{QR&W zONNt2z@nss^K_X~eLR`cSvVIfMeSfTbmmr&58_**5um`{FC={>;XzVD=Tv()J_7-T ogaZvn8JQwxBtJeTEbH?rX5;20cPa5$D~HSgwKHzbjEoG{0NEsHRR910 literal 0 HcmV?d00001 diff --git a/images/icons/lightbulb.gif b/images/icons/lightbulb.gif new file mode 100644 index 0000000000000000000000000000000000000000..9a15662458e2431680913b63463d6a29b15137f2 GIT binary patch literal 1022 zcmeH`YfDpM0D#YQlvakO2@+il3xhNgq|D6CawQqg=w=v9!_e$vW~C9iwK7ww1T_uC z)D(*-OU+6NQ_Fcx=9ScTcHEBcqTAedE<5l0F8Txgf}YRMrw5+HF`~U;NuHP|Mpt8$ zItu|4g=bRg>rTWv5nTG7Yf+X!dSX%@1Z;hfnMUlit~pKLoDSKEN!ds6;xfbiVh}PUgz^HwF)iV61ykH+^CCzVBILjR3jP{uX@i9^2 z>A2r_d@0Sv!NDO@cjdCO6mbSfkC#4{v${T0YpN3gFei0?tk_s*j{< zjGAq97z$JqeR{ot(X_ET1z7&cXa}sL4Yjq6-0~OBsz+eynfwA`h{g8w%PD7nJqZKm zDLdY09(EThO;ypyYlrF zyD0n`a?H?kcOdoC>2zZM`DX!tme0emYHa6U>+cho+cXyG4t(ZUSGndVH|cg~Z1Gr| zJt)?1Q9P{_Zs=UoL*()Oyie@k(PR-QYuAVKN#5}^VVNJ_jo&H#Q7n&jsqc`CM7zJh zcnt#Oy|g$tS;+Q?*HTI0Cigv{g&hfeC~!R$nDrrmELiCgRW`M@-_!xE8M1h{8!yS=n=Us#^)8k(A&Eb;9d!M ug&?R17thtl&dbt5Z1MhEzw2Zt#WONOK9VlG{yb6I-7~zXa&dLR!v6rXxzQ>B literal 0 HcmV?d00001 diff --git a/images/icons/link.png b/images/icons/link.png new file mode 100755 index 0000000000000000000000000000000000000000..25eacb7c2524142262d68bf729c5e2b61adfd6d4 GIT binary patch literal 343 zcmV-d0jU0oP)$`dXYaZs9=SbAto%g@>T~?_bH&lTUn@`uo|1bXE{eSR(AO)ESb=V4`uk}mK|39Px&03WLbv~pzk+s7D@lK^ zn+aB+sp)&Y_x-B3>;6ywU--WQNUr<8>TU0P-|L#1U&;A)67w(+> pDf@fM7q9#F25QXo3rUI;002ro52U44e~JJA002ovPDHLkV1l;_q@Mr) literal 0 HcmV?d00001 diff --git a/images/icons/paperclip.gif b/images/icons/paperclip.gif new file mode 100644 index 0000000000000000000000000000000000000000..b6c6d621799b60107a24e40a29ae828fb5813aff GIT binary patch literal 384 zcmZ?wbhEHb6krfwxN5}k_U+sJ{QSzw$}3l{SXfw0pFZ8%+Iro(b-#Z7%FfO(>Vb1$laU+Su6m`1mYawk#zjWzL*A zot>TAw{PFJZJUFGLr6%--Me=~LqjVnDxN%fvUKTEdwcu2bLVz+bol!EIypH_o;>;K z)2GqV(N$Gdfq{W0CMN&EfPpxm_>+Z^fx(DD2c#V2CkD2;4l@fpbWSCmP!XEwc`!;~ z>69x*K4H2MAyUkHv}SuU3mzz7TzmZyvr>tM&`am!LQOG4w}W3N_4(+ruo_CUsT;6+ z@v`WNYZ%HI$mmOPc#0S>@-P}QbLla$DS9f3Gx6#(Fo+4Vc6jn-^2crzRW0|DG+_4R ulxNqP<0Wy(kcmZrQ(?20kc=Upo`LLKofxJnB{sR3AWj3pJ$F4F8LR=7xPE*9 literal 0 HcmV?d00001 diff --git a/images/icons/resultset_first.gif b/images/icons/resultset_first.gif new file mode 100644 index 0000000000000000000000000000000000000000..e8c1a86ff042c1637664d2c949bfaac544e89e87 GIT binary patch literal 553 zcmZ?wbhEHb6krfwcoxl&JpGnV$@v+(UpB0M<=S$?viefr=4Vn#C*-ovCQZMcHtT-+ ztUD97JkOhdw_){*x|NTrmOsdydoOq1y;-|o)U9|pbI+RzTc5SAeO|EOkxS#{%(?dq z=HC->+$|A#EN0UEl<9Y;?R-_f`6d+(-ak}=0pXFsf5{!q+o@01-c%a=V%n0C8x;r-%8 z5A&NZhzA|maQef2M{oN}yo#pBks zPs$eGZ(H|7BJ{}W6YuL*zL>l3O-|cI@6MY&TV6J=dA#KCYmfHp^A5bOUhyz}(vAQB z|1;1LDE?$&WMGJ9&;i*AiW3I*wub1Y=9bpB_I76G0MV8(%{D$q4fAHFV3sxuyTFhp zVJRNgHVJz)L+UJ35JHfj5dm`V4G7d^U^-zuJQvw6+qtl4+srremZ`=x*3nTgw;moIx(viSb$6YpEs zzw~au*0Abf-rW1C({8ymUY@n*RocwE>CP<~F>X1iPK zwJqm9)USN}|Nnmm+5^R(EQ|~caSS>jt3YwWz~0sn*VNq7+ScCgE!ZNa7Q)=7CmGW$ zEgHz!<`EiZ-y|g=#M&m{#i8LIXQLj$)W*pxr^D~dZ6eFkW^AddY~-hDCeF~t?5ZeY z7o_5;CEUhn9;@x+Z)l-p-Nve*9~~TL%i|p0#^e;h)ue0SVAaMVW7-@k?-JF<;Mn5E P$IjNl#N{Hw!C(ylll$23 literal 0 HcmV?d00001 diff --git a/images/icons/resultset_next.gif b/images/icons/resultset_next.gif new file mode 100644 index 0000000000000000000000000000000000000000..534f12361e5e185ea8a31f1af8bfb11a67269a79 GIT binary patch literal 303 zcmZ?wbhEHb6krfwxN6QYbN8#d6%W^*cwe*fVdLt@IbD|UIluejXQ`x+OXiPP^ow_ICz z@Xds+&zaX?!G#6_sf#S4}$w{Cry7S=69fc$^B(V-n6cNX+|z+ldx z1Cj^%iGj`M!0ZAK9jX2k!c3W4b|&~da&|CwZQVF?jq1)mGp&GSBBG2uEJs@oT`6$l p4tsuR%NnibE9!@iut;ghg>wq9n}(a~^RRZ9tMK(soaD%04FFw+j+X!c literal 0 HcmV?d00001 diff --git a/images/icons/resultset_previous.gif b/images/icons/resultset_previous.gif new file mode 100644 index 0000000000000000000000000000000000000000..7e0812a8013940c204e92f9b1118cc09ee94291d GIT binary patch literal 304 zcmZ?wbhEHb6krfwxN62QbN9=Qr`}gBdsMja-ppMuv*$jjTK2GL;eBDt?RkyowTjNC z&A6RD>rVIPr=?3CS1o%wVcT=*)RU1D?urK;NSSuGZT-{q$v6J|{a3T{Vc~)Y@l)?C zJMt#G`9kj8yXM&^^XA|6YQHIDyrp^VW2>4gqV9WV?S0j|=~>d$TRC$dB~O1ib;paT zJ73tAUl4KFS-#{!cF)zdC*MiN9BW+t*f9P`=IlEjt=Inl|IdIMDE?$&WMD93&;cm{ z`H6we*I{;nhmKVLi6n-pDu;q5Ei3q}(YS<#J;5}~$*7^rbK(+_kWI}RlSDG4^x71s m?J3EcaWp|`>jpa$l^`>HId$D;GZ|x!PBTu$zDXXA4Aua%Du-?W literal 0 HcmV?d00001 diff --git a/images/icons/sort_asc.gif b/images/icons/sort_asc.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9ddf4e7e18669324ecaca90115807646d512cc6 GIT binary patch literal 335 zcmZ?wbhEHb6krfwxT?(X?Af!24TM>zj*`X{Q3Lm+O=!X zo;`o~@X?*ycmDhZfr}R|{{8#s_U${bfvR4={`u?Y#S0fce)#YQsQS;JXV0JCzJ2@o z^JgDEeE9nH>(8G*ckI}4=gyt~V8B2Fp!k!8k%2*(K?h_u$WIJxIR_>dSa7v=cqDPK zSgB1_;9l}mMo*M0t5lOSSL)W2NrD>f3mJG57$3}O_3nCDVBmA_^f`t`1s)FZbZ@y9 zR=GC0L~r??-d@otZ+=cbP9`P^K_9MQ7S8vbw`kd1pOvdt`nkHT-{9ut$Y2cs D=5meh literal 0 HcmV?d00001 diff --git a/images/icons/sort_desc.gif b/images/icons/sort_desc.gif new file mode 100644 index 0000000000000000000000000000000000000000..b16b69b6b9514471da98dd9c6b0e529beb8395d3 GIT binary patch literal 327 zcmZ?wbhEHb6krfwxT?(X?Af!24TM>zj*`X{Q3Lm+O=!X zo;`o~@X?*ycmDhZfr}R|{{8#s_U${bfvR4={`u?Y#S0fce)#YQsQS;JXV0JCzJ2@o z^JgDEeE9nH>(8G*ckI}4=gyt~V8B2Fp!k!8k%2*(K?h_u$WIJxDF-fUxadfA9#YIW znWN|IHL=8NYE#F8RbeHeX)J<04igGgt@J#aJl~xp*?#0D5*GoWbq1RF;4^K}=25SI0@`=^} literal 0 HcmV?d00001 diff --git a/images/ui/no_img_f.gif b/images/ui/no_img_f.gif new file mode 100644 index 0000000000000000000000000000000000000000..b14a5589fb6a4ecc3200c3618572be57be4cbe6b GIT binary patch literal 2662 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 WUJs48cF5~ub8EuqY^n$V;PNM-w~w6w literal 0 HcmV?d00001 diff --git a/images/ui/square_loading.gif b/images/ui/square_loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..61447df88d7a42d92ae805d850b58cf5f3f9d6d5 GIT binary patch literal 404 zcmZ?wbhEHb)Mnsj_{hNU|Nnmm28O1lCLpQ!Ps+I{HL)Z$MWH;iBts!FE3qOcKQTow zGcPTlLGdRG0~biue{Mh5kYH!W09PYD17=2`kPZ+tfDB|{GHU7LI6dv=jpolsxuoxf zeLmg#z^pAIa$%Z!?Y&w1mh+_RdR}iorT6Q|=AU*u7AP3`hyqOno6Lx8jO`JiF$(;N z$s1?29A8uOc}C*B?>#9qX3Rge(97AYKxYSg_SubVU#jqJVoVj0%8&R|+jq+E@}pTg zNkPZg!%SpCF%jf21E7g3XJtj-$$!MpCA_`zVP(&fD+^Za;#S?BYU=U)B{ znl)pM=^29__fs!F%>`72MCm{NZNrZvH8We6|001Mclvn@& literal 0 HcmV?d00001 diff --git a/images/ui/tick.gif b/images/ui/tick.gif new file mode 100644 index 0000000000000000000000000000000000000000..9203c05c4a02bf9288d76378fbbad285b521684d GIT binary patch literal 207 zcmZ?wbhEHb6krfwI3mN~>FGIP!h~<%zMVRC>cN8tFJHcFZ*QMHd-nC~*Dqhb{N>9R zUteDr7niqh-xe1apE+}8*|KGIb#;IL{*8@|t*NQmym@nXcXv)sj=Q`2(W6HL0s@?z zoc{m+&j168KUo+V7-Sf9Kms5;8CZQ3)caC0XH6}db>7TV`(;jmjneH!w_>))+VCYZ zXRz?jcGz$rLBx+KC?UBaZps|C1ZNA?ZKn>m2}$SZcJm%eyO$$#kkM^2XOYmwP!0xb E03Iz^V*mgE literal 0 HcmV?d00001 diff --git a/js/legacy/form.compressed.js b/js/legacy/form.compressed.js index 315acfec24..2b4d23a384 100644 --- a/js/legacy/form.compressed.js +++ b/js/legacy/form.compressed.js @@ -75,7 +75,7 @@ _f.Frm.prototype.set_heading=function(){if(!this.meta.istable&&this.frm_head)thi _f.Frm.prototype.set_section=function(sec_id){if(!this.sections[sec_id]||!this.sections[sec_id].expand) return;if(this.sections[this.cur_section[this.docname]]) this.sections[this.cur_section[this.docname]].collapse();this.sections[sec_id].expand();this.cur_section[this.docname]=sec_id;} -_f.Frm.prototype.setup_tips=function(){var me=this;this.tip_box=$a(this.tip_wrapper,'div','help_box');var tab=$a(this.tip_box,'table');var r=tab.insertRow(0);var c0=r.insertCell(0);this.c1=r.insertCell(1);this.img=$a(c0,'img');this.img.setAttribute('src','images/icons/lightbulb.gif');c0.style.width='24px';this.set_tip=function(t,icon){me.c1.innerHTML='
'+t+'
';$ds(me.tip_box);if(icon)this.img.setAttribute('src','images/icons/'+icon);} +_f.Frm.prototype.setup_tips=function(){var me=this;this.tip_box=$a(this.tip_wrapper,'div','help_box');var tab=$a(this.tip_box,'table');var r=tab.insertRow(0);var c0=r.insertCell(0);this.c1=r.insertCell(1);this.img=$a(c0,'img');this.img.setAttribute('src','lib/images/icons/lightbulb.gif');c0.style.width='24px';this.set_tip=function(t){me.c1.innerHTML='
'+t+'
';$ds(me.tip_box);} this.append_tip=function(t){me.c1.innerHTML+='
'+t+'
';$ds(me.tip_box);} this.clear_tip=function(){me.c1.innerHTML='';$dh(me.tip_box);} $dh(this.tip_box);} diff --git a/js/legacy/globals.js b/js/legacy/globals.js index 3192ec8e49..7c26c7a89d 100644 --- a/js/legacy/globals.js +++ b/js/legacy/globals.js @@ -77,7 +77,3 @@ var validated = true; var validation_message = ''; var tinymce_loaded = null; var cur_autosug = null; - -// icons -var exp_icon = "images/ui/right-arrow.gif"; -var min_icon = "images/ui/down-arrow.gif"; \ No newline at end of file diff --git a/js/legacy/report.compressed.js b/js/legacy/report.compressed.js index 3f12e18b20..fcbceefde1 100644 --- a/js/legacy/report.compressed.js +++ b/js/legacy/report.compressed.js @@ -149,8 +149,8 @@ var parent=html_field.wrapper;datatables[html_fieldname]=this;}else{var parent=h this.start_rec=1;this.page_len=50;this.repname=repname;this.dt=dt;this.no_limit=false;this.query='';this.has_index=1;this.has_headings=1;this.disabled_options={};this.levels=[];if(this.dt){var tw=$a(parent,'div');var t=$a(tw,'div','link_type');t.style.cssFloat='right';$h(tw,'14px');t.style.margin='2px 0px';t.style.fontSize='11px';t.onclick=function(){new_doc(me.dt);} t.innerHTML='New '+this.dt;} if(!hide_toolbar)this.make_toolbar(parent);this.wrapper=$a(parent,'div','report_tab');$h(this.wrapper,cint(screen.height*0.35)+'px');this.wrapper.onscroll=function(){_r.scroll_head(this);} -this.hwrapper=$a(this.wrapper,'div','report_head_wrapper');this.twrapper=$a(this.wrapper,'div','report_tab_wrapper');this.no_data_tag=$a(this.wrapper,'div','report_no_data');this.no_data_tag.innerHTML='No Records Found';this.fetching_tag=$a(this.wrapper,'div','',{height:'100%',background:'url("images/ui/square_loading.gif") center no-repeat',display:'none'});} -_r.DataTable.prototype.add_icon=function(parent,imgsrc){var i=$a(parent,'img');i.style.padding='2px';i.style.cursor='pointer';i.setAttribute('src','images/icons/'+imgsrc+'.gif');return i;} +this.hwrapper=$a(this.wrapper,'div','report_head_wrapper');this.twrapper=$a(this.wrapper,'div','report_tab_wrapper');this.no_data_tag=$a(this.wrapper,'div','report_no_data');this.no_data_tag.innerHTML='No Records Found';this.fetching_tag=$a(this.wrapper,'div','',{height:'100%',background:'url("lib/images/ui/square_loading.gif") center no-repeat',display:'none'});} +_r.DataTable.prototype.add_icon=function(parent,imgsrc){var i=$a(parent,'img');i.style.padding='2px';i.style.cursor='pointer';i.setAttribute('src','lib/images/icons/'+imgsrc+'.gif');return i;} _r.DataTable.prototype.set_no_limit=function(v){if(v){this.no_limit=1;$dh(this.page_len_sel.wrapper);}else{this.no_limit=0;$ds(this.page_len_sel.wrapper);}} _r.DataTable.prototype.make_toolbar=function(parent){var me=this;this.hbar=$a(parent,'div','',{margin:'8px 0px 16px 0px'});var ht=make_table(this.hbar,1,3,'100%',['40%','40%','20%'],{verticalAlign:'middle'});var div=$a($td(ht,0,0),'div');var make_btn=function(label,icon,onclick,bold){var btn=$btn(div,label,onclick);if(bold)$y(btn,{fontWeight:'bold'});} make_btn('Refresh','ui-icon-refresh',function(){me.start_rec=1;me.run();},1);make_btn('Export','ui-icon-circle-arrow-e',function(){me.do_export();});make_btn('Print','ui-icon-print',function(){me.do_print();});make_btn('Calc','ui-icon-calculator',function(){me.do_calc();});var t=make_table($td(ht,0,1),1,6,null,[null,null,null,'20px',null,null],{verticalAlign:'middle'});$td(t,0,0).innerHTML='Sort By:';$y($td(t,0,1),{textAlign:'right',paddingRight:'4px'});this.sort_sel=$a($td(t,0,2),'select','',{width:'100px'});this.sort_sel.onchange=function(){me.start_rec=1;me.run();} @@ -159,8 +159,8 @@ $td(t,0,4).innerHTML='Per Page:';$y($td(t,0,4),{textAlign:'right',paddingRight:' this.page_len_sel=s;var c1=$td(ht,0,2);c1.style.textAlign='right';var ic=this.add_icon(c1,'resultset_first');ic.onclick=function(){me.start_rec=1;me.run();} var ic=this.add_icon(c1,'resultset_previous');ic.onclick=function(){if(me.start_rec-me.page_len<=0)return;me.start_rec=me.start_rec-me.page_len;me.run();} this.has_next=false;var ic=this.add_icon(c1,'resultset_next');ic.onclick=function(){if(!me.has_next)return;me.start_rec=me.start_rec+me.page_len;me.run();}} -_r.DataTable.prototype.set_desc=function(){this.sort_icon.src='images/icons/arrow_down.gif';this.sort_order='DESC';} -_r.DataTable.prototype.set_asc=function(icon){this.sort_icon.src='images/icons/arrow_up.gif';this.sort_order='ASC';} +_r.DataTable.prototype.set_desc=function(){this.sort_icon.src='lib/images/icons/arrow_down.gif';this.sort_order='DESC';} +_r.DataTable.prototype.set_asc=function(icon){this.sort_icon.src='lib/images/icons/arrow_up.gif';this.sort_order='ASC';} _r.DataTable.prototype.set_sort_option_disabled=function(label,disabled){var s=this.sort_sel;if(disabled){for(var i=0;i'; $ds(me.tip_box); - if(icon) this.img.setAttribute('src','images/icons/'+icon); } this.append_tip = function(t) { me.c1.innerHTML += '
' + t + '
'; $ds(me.tip_box); diff --git a/js/legacy/widgets/listing.js b/js/legacy/widgets/listing.js index 61dc1cc7a5..bc14369292 100644 --- a/js/legacy/widgets/listing.js +++ b/js/legacy/widgets/listing.js @@ -79,7 +79,7 @@ Listing.prototype.make = function(parent) { // results this.results = $a($a(this.body_area, 'div','srs_results_area'),'div'); - this.fetching_area = $a(this.body_area, 'div','',{height:'120px', background:'url("images/ui/square_loading.gif") center no-repeat', display:'none'}); + this.fetching_area = $a(this.body_area, 'div','',{height:'120px', background:'url("lib/images/ui/square_loading.gif") center no-repeat', display:'none'}); this.show_no_records = $a(this.body_area,'div','',{margin:'200px 0px', textAlign:'center', fontSize:'14px', color:'#888', display:'none'}); this.show_no_records.innerHTML = 'No Result'; @@ -140,7 +140,7 @@ Listing.prototype.make_toolbar = function() { } this.loading_img = $a(this.btn_area,'img','',{display:'none',marginBottom:'-2px'}); - this.loading_img.src = 'images/ui/button-load.gif'; + this.loading_img.src = 'lib/images/ui/button-load.gif'; if(!keys(this.buttons).length) $dh(this.btn_area); @@ -217,7 +217,7 @@ Listing.prototype.add_filter = function(label, ftype, options, tname, fname, con // filter label var d1= $a(c,'div','',{fontSize:'11px', marginBottom:'2px'}); d1.innerHTML = label; - if(ftype=='Link') d1.innerHTML += ' '; + if(ftype=='Link') d1.innerHTML += ' '; var d2= $a(c,'div'); diff --git a/js/legacy/widgets/report_builder/datatable.js b/js/legacy/widgets/report_builder/datatable.js index f1e4eeb370..1879df6483 100644 --- a/js/legacy/widgets/report_builder/datatable.js +++ b/js/legacy/widgets/report_builder/datatable.js @@ -67,14 +67,14 @@ _r.DataTable = function(html_fieldname, dt, repname, hide_toolbar) { this.no_data_tag = $a(this.wrapper, 'div', 'report_no_data'); this.no_data_tag.innerHTML = 'No Records Found'; - this.fetching_tag = $a(this.wrapper, 'div', '', {height:'100%', background:'url("images/ui/square_loading.gif") center no-repeat', display:'none'}); + this.fetching_tag = $a(this.wrapper, 'div', '', {height:'100%', background:'url("lib/images/ui/square_loading.gif") center no-repeat', display:'none'}); } _r.DataTable.prototype.add_icon = function(parent, imgsrc) { var i = $a(parent, 'img'); i.style.padding = '2px'; i.style.cursor = 'pointer'; - i.setAttribute('src', 'images/icons/'+imgsrc+'.gif'); + i.setAttribute('src', 'lib/images/icons/'+imgsrc+'.gif'); return i; } @@ -180,10 +180,10 @@ _r.DataTable.prototype.make_toolbar = function(parent) { } _r.DataTable.prototype.set_desc = function() { - this.sort_icon.src = 'images/icons/arrow_down.gif'; this.sort_order='DESC'; + this.sort_icon.src = 'lib/images/icons/arrow_down.gif'; this.sort_order='DESC'; } _r.DataTable.prototype.set_asc = function(icon) { - this.sort_icon.src = 'images/icons/arrow_up.gif'; this.sort_order='ASC'; + this.sort_icon.src = 'lib/images/icons/arrow_up.gif'; this.sort_order='ASC'; } //// diff --git a/js/legacy/wn/widgets/listing.js b/js/legacy/wn/widgets/listing.js index 3615189ab1..22802f958e 100644 --- a/js/legacy/wn/widgets/listing.js +++ b/js/legacy/wn/widgets/listing.js @@ -47,7 +47,7 @@ wn.widgets.Listing = function(opts) { this.ref_img = $a(this.toolbar_area, 'span', 'link_type', {color:'#888'}, '[refresh]'); this.ref_img.onclick = function() { me.run(); } - this.loading_img = $a(this.toolbar_area, 'img', 'images/ui/button-load.gif', {display:'none', marginLeft:'3px', marginBottom:'-2px'}); + this.loading_img = $a(this.toolbar_area, 'img', 'lib/images/ui/button-load.gif', {display:'none', marginLeft:'3px', marginBottom:'-2px'}); } if(this.opts.new_doctype) { diff --git a/js/legacy/wn/widgets/page_sidebar.js b/js/legacy/wn/widgets/page_sidebar.js index 39a86223e1..bb04958096 100644 --- a/js/legacy/wn/widgets/page_sidebar.js +++ b/js/legacy/wn/widgets/page_sidebar.js @@ -89,7 +89,7 @@ wn.widgets.PageSidebarSection = function(sidebar, opts) { ); } else { var img = $a(parent, 'img', '', {marginRight: '7px', marginBottom:'-3px'}); - img.src = 'images/icons/' + icon; + img.src = 'lib/images/icons/' + icon; } } diff --git a/js/legacy/wnf.compressed.js b/js/legacy/wnf.compressed.js index 8f5f752bae..4a84b7f543 100644 --- a/js/legacy/wnf.compressed.js +++ b/js/legacy/wnf.compressed.js @@ -1,7 +1,7 @@ wn.provide('wn.widgets.form');wn.provide('wn.widgets.report');wn.provide('wn.utils');wn.provide('wn.model');wn.provide('wn.profile');wn.provide('wn.session');wn.provide('_f');wn.provide('_p');wn.provide('_r');wn.provide('_c');wn.provide('_e');wn.provide('_startup_data') wn.settings.no_history=1;var NEWLINE='\n';var login_file='';var version='v170';var profile=null;var session={};var is_testing=false;var user=null;var user_defaults=null;var user_roles=null;var user_fullname=null;var user_email=null;var user_img={};var home_page=null;var page_body=null;var pscript={};var selector=null;var keypress_observers=[];var click_observers=[];var top_index=91;var _f={};var _p={};var _e={};var _r={};var FILTER_SEP='\1';var _c={};var widget_files={'_f.FrmContainer':'form.compressed.js','_c.CalendarPopup':'widgets/form/date_picker.js','_r.ReportContainer':'report.compressed.js','_p.PrintQuery':'widgets/print_query.js','Calendar':'widgets/calendar.js','Recommendation':'widgets/recommend.js','RatingWidget':'widgets/rating.js'} -var frms={};var cur_frm=null;var pscript={};var validated=true;var validation_message='';var tinymce_loaded=null;var cur_autosug=null;var exp_icon="images/ui/right-arrow.gif";var min_icon="images/ui/down-arrow.gif";var startup_list=[];wn.utils.full_name=function(fn,ln){return fn+(ln?' ':'')+(ln?ln:'')} +var frms={};var cur_frm=null;var pscript={};var validated=true;var validation_message='';var tinymce_loaded=null;var cur_autosug=null;var startup_list=[];wn.utils.full_name=function(fn,ln){return fn+(ln?' ':'')+(ln?ln:'')} function fmt_money(v){if(v==null||v=='')return'0.00';v=(v+'').replace(/,/g,'');v=parseFloat(v);if(isNaN(v)){return'';}else{var cp=locals['Control Panel']['Control Panel'];var val=2;if(cp.currency_format=='Millions')val=3;v=v.toFixed(2);var delimiter=",";amount=v+'';var a=amount.split('.',2) var d=a[1];var i=parseInt(a[0]);if(isNaN(i)){return'';} var minus='';if(v<0){minus='-';} @@ -18,7 +18,7 @@ function is_null(v){if(v==null){return 1}else if(v==0){if((v+'').length>=1)retur function $s(ele,v,ftype,fopt){if(v==null)v='';if(ftype=='Text'||ftype=='Small Text'){ele.innerHTML=v?v.replace(/\n/g,'
'):'';}else if(ftype=='Date'){v=dateutil.str_to_user(v);if(v==null)v='' ele.innerHTML=v;}else if(ftype=='Link'&&fopt){ele.innerHTML='';doc_link(ele,fopt,v);}else if(ftype=='Currency'){ele.style.textAlign='right';if(is_null(v)) ele.innerHTML='';else -ele.innerHTML=fmt_money(v);}else if(ftype=='Int'){ele.style.textAlign='right';ele.innerHTML=v;}else if(ftype=='Check'){if(v)ele.innerHTML='';else ele.innerHTML='';}else{ele.innerHTML=v;}} +ele.innerHTML=fmt_money(v);}else if(ftype=='Int'){ele.style.textAlign='right';ele.innerHTML=v;}else if(ftype=='Check'){if(v)ele.innerHTML='';else ele.innerHTML='';}else{ele.innerHTML=v;}} function clean_smart_quotes(s){if(s){s=s.replace(/\u2018/g,"'");s=s.replace(/\u2019/g,"'");s=s.replace(/\u201c/g,'"');s=s.replace(/\u201d/g,'"');s=s.replace(/\u2013/g,'-');s=s.replace(/\u2014/g,'--');} return s;} function copy_dict(d){var n={};for(var k in d)n[k]=d[k];return n;} @@ -104,7 +104,7 @@ var date=dateutil=wn.datetime;var get_today=wn.datetime.get_today var comment_when=wn.datetime.comment_when;var time_to_ampm=wn.datetime.time_to_ampm;var time_to_hhmm=wn.datetime.time_to_hhmm;var only_date=wn.datetime.only_date;wn.dom.set_unique_id=function(ele){var id='unique-'+wn.dom.id_count;ele.setAttribute('id',id);wn.dom.id_count++;return id;} wn.tinymce={add_simple:function(ele,height){if(ele.myid){tinyMCE.execCommand('mceAddControl',true,ele.myid);return;} ele.myid=wn.dom.set_unique_id(ele);$(ele).tinymce({script_url:'lib/js/legacy/tiny_mce_33/tiny_mce.js',height:height?height:'200px',theme:"advanced",theme_advanced_buttons1:"bold,italic,underline,separator,strikethrough,justifyleft,justifycenter,justifyright,justifyfull,bullist,numlist,outdent,indent,link,unlink,forecolor,backcolor,code,",theme_advanced_buttons2:"",theme_advanced_buttons3:"",theme_advanced_toolbar_location:"top",theme_advanced_toolbar_align:"left",theme_advanced_path:false,theme_advanced_resizing:false});},remove:function(ele){tinyMCE.execCommand('mceRemoveControl',true,ele.myid);},get_value:function(ele){return tinymce.get(ele.myid).getContent();}} -wn.ele={link:function(args){var span=$a(args.parent,'span','link_type',args.style);span.loading_img=$a(args.parent,'img','',{margin:'0px 4px -2px 4px',display:'none'});span.loading_img.src='images/ui/button-load.gif';span.innerHTML=args.label;span.user_onclick=args.onclick;span.onclick=function(){if(!this.disabled)this.user_onclick(this);} +wn.ele={link:function(args){var span=$a(args.parent,'span','link_type',args.style);span.loading_img=$a(args.parent,'img','',{margin:'0px 4px -2px 4px',display:'none'});span.loading_img.src='lib/images/ui/button-load.gif';span.innerHTML=args.label;span.user_onclick=args.onclick;span.onclick=function(){if(!this.disabled)this.user_onclick(this);} span.set_working=function(){this.disabled=1;$di(this.loading_img);} span.done_working=function(){this.disabled=0;$dh(this.loading_img);} return span;}} @@ -205,8 +205,8 @@ return d;},get_base_url:function(){var url=window.location.href.split('#')[0].sp return url},get_file_url:function(file_id){var ac_id=locals['Control Panel']['Control Panel'].account_id;return repl('cgi-bin/getfile.cgi?name=%(fn)s&acx=%(ac)s',{fn:file_id,ac:ac_id})}} get_url_arg=wn.urllib.get_arg;get_url_dict=wn.urllib.get_dict;var user_img={} var user_img_queue={};var user_img_loading=[];set_user_img=function(img,username,get_latest,img_id){function set_it(i){if(user_img[username]=='no_img_m') -i.src='images/ui/no_img/no_img_m.gif';else if(user_img[username]=='no_img_f') -i.src='images/ui/no_img/no_img_f.gif';else{ac_id=locals['Control Panel']['Control Panel'].account_id;i.src=repl('cgi-bin/getfile.cgi?ac=%(ac)s&name=%(fn)s',{fn:user_img[username],ac:ac_id});}} +i.src='lib/images/no_img_m.gif';else if(user_img[username]=='no_img_f') +i.src='lib/images/no_img_f.gif';else{ac_id=locals['Control Panel']['Control Panel'].account_id;i.src=repl('cgi-bin/getfile.cgi?ac=%(ac)s&name=%(fn)s',{fn:user_img[username],ac:ac_id});}} if(img_id){user_img[username]=img_id;set_it(img);return;} if(user_img[username]&&!get_latest){set_it(img);}else{if(in_list(user_img_loading,username)){if(!user_img_queue[username]) user_img_queue[username]=[];user_img_queue[username].push(img);return;} @@ -272,7 +272,7 @@ if(!msg_dialog){msg_dialog=new Dialog(500,200,"Message");msg_dialog.make_body([[ msg_dialog.onhide=function(){msg_dialog.msg_area.innerHTML='';$dh(msg_dialog.msg_icon);if(msg_dialog.custom_onhide)msg_dialog.custom_onhide();} $y(msg_dialog.rows['Msg'],{fontSize:'14px',lineHeight:'1.5em',padding:'16px'}) var t=make_table(msg_dialog.rows['Msg'],1,2,'100%',['20px','250px'],{padding:'2px',verticalAlign:'Top'});msg_dialog.msg_area=$td(t,0,1);msg_dialog.msg_icon=$a($td(t,0,0),'img');} -if(!msg_dialog.display)msg_dialog.show();var has_msg=msg_dialog.msg_area.innerHTML?1:0;var m=$a(msg_dialog.msg_area,'div','');if(has_msg)$y(m,{marginTop:'4px'});$dh(msg_dialog.msg_icon);if(msg.substr(0,6).toLowerCase()=='error:'){msg_dialog.msg_icon.src='images/icons/error.gif';$di(msg_dialog.msg_icon);msg=msg.substr(6);}else if(msg.substr(0,8).toLowerCase()=='message:'){msg_dialog.msg_icon.src='images/icons/application.gif';$di(msg_dialog.msg_icon);msg=msg.substr(8);}else if(msg.substr(0,3).toLowerCase()=='ok:'){msg_dialog.msg_icon.src='images/icons/accept.gif';$di(msg_dialog.msg_icon);msg=msg.substr(3);} +if(!msg_dialog.display)msg_dialog.show();var has_msg=msg_dialog.msg_area.innerHTML?1:0;var m=$a(msg_dialog.msg_area,'div','');if(has_msg)$y(m,{marginTop:'4px'});$dh(msg_dialog.msg_icon);if(msg.substr(0,6).toLowerCase()=='error:'){msg_dialog.msg_icon.src='lib/images/icons/error.gif';$di(msg_dialog.msg_icon);msg=msg.substr(6);}else if(msg.substr(0,8).toLowerCase()=='message:'){msg_dialog.msg_icon.src='lib/images/icons/application.gif';$di(msg_dialog.msg_icon);msg=msg.substr(8);}else if(msg.substr(0,3).toLowerCase()=='ok:'){msg_dialog.msg_icon.src='lib/images/icons/accept.gif';$di(msg_dialog.msg_icon);msg=msg.substr(3);} m.innerHTML=replace_newlines(msg);if(m.offsetHeight>200){$y(m,{height:'200px',width:'400px',overflow:'auto'})} msg_dialog.custom_onhide=callback;} var growl_area;function show_alert(txt){if(!growl_area){growl_area=$a(popup_cont,'div','',{position:'fixed',bottom:'8px',right:'8px',width:'320px',zIndex:10});} @@ -340,7 +340,7 @@ else if(d[0]=='Button'){c2.style.height='32px';c2.style.textAlign='right';var b= this.widgets[d[1]]=b;}} list_opts={cell_style:{padding:'3px 2px'},alt_cell_style:{},head_style:{height:'20px',overflow:'hidden',verticalAlign:'middle',fontWeight:'bold',padding:'1px',fontSize:'13px'},head_main_style:{padding:'0px'},hide_export:1,hide_print:1,hide_refresh:0,hide_rec_label:0,show_calc:1,show_empty_tab:0,no_border:1,append_records:1,table_width:null};function Listing(head_text,no_index,no_loading){wn.require('lib/js/legacy/widgets/form/fields.js');this.start=0;this.page_len=20;this.filters_per_line=7;this.cell_idx=0;this.head_text=head_text?head_text:'Result';this.keyword='records';this.no_index=no_index;this.underline=1;this.no_rec_message='No Result';this.show_cell=null;this.show_result=null;this.colnames=null;this.colwidths=null;this.coltypes=null;this.coloptions=null;this.filters={};this.sort_list={};this.sort_order_dict={};this.sort_heads={};this.is_std_query=false;this.server_call=null;this.no_loading=no_loading;this.opts=copy_dict(list_opts);} Listing.prototype.make=function(parent){var me=this;this.wrapper=parent;this.filter_wrapper=$a(parent,'div','srs_filter_wrapper');this.filter_area=$a(this.filter_wrapper,'div','srs_filter_area');$dh(this.filter_wrapper);this.btn_area=$a(parent,'div','',{margin:'8px 0px'});this.body_area=$a(parent,'div','srs_body_area');if(!this.opts.hide_rec_label) -this.rec_label=$a(this.body_area,'div','',{margin:'4px 0px',color:'#888'});this.results=$a($a(this.body_area,'div','srs_results_area'),'div');this.fetching_area=$a(this.body_area,'div','',{height:'120px',background:'url("images/ui/square_loading.gif") center no-repeat',display:'none'});this.show_no_records=$a(this.body_area,'div','',{margin:'200px 0px',textAlign:'center',fontSize:'14px',color:'#888',display:'none'});this.show_no_records.innerHTML='No Result';if(this.opts.show_empty_tab) +this.rec_label=$a(this.body_area,'div','',{margin:'4px 0px',color:'#888'});this.results=$a($a(this.body_area,'div','srs_results_area'),'div');this.fetching_area=$a(this.body_area,'div','',{height:'120px',background:'url("lib/images/ui/square_loading.gif") center no-repeat',display:'none'});this.show_no_records=$a(this.body_area,'div','',{margin:'200px 0px',textAlign:'center',fontSize:'14px',color:'#888',display:'none'});this.show_no_records.innerHTML='No Result';if(this.opts.show_empty_tab) this.make_result_tab();this.bottom_div=$a(this.body_area,'div','',{paddingTop:'8px'});this.make_toolbar();} Listing.prototype.make_toolbar=function(){var me=this;this.buttons={};var make_btn=function(label,icon,onclick,bold){var btn=$btn(me.btn_area,label,onclick,{marginRight:'4px'});if(bold)$y(btn,{fontWeight:'bold'});me.buttons[label]=btn;} if(!this.opts.hide_refresh){make_btn('Refresh','ui-icon-refresh',function(btn){me.start=0;me.run();},1);} @@ -349,7 +349,7 @@ if(this.opts.show_report){make_btn('Report Builder','ui-icon-clipboard',function if(!this.opts.hide_export){make_btn('Export','ui-icon-circle-arrow-e',function(){me.do_export();});} if(!this.opts.hide_print){make_btn('Print','ui-icon-print',function(){me.do_print();});} if(this.opts.show_calc){make_btn('Calc','ui-icon-calculator',function(){me.do_calc();});$dh(me.buttons['Calc'])} -this.loading_img=$a(this.btn_area,'img','',{display:'none',marginBottom:'-2px'});this.loading_img.src='images/ui/button-load.gif';if(!keys(this.buttons).length) +this.loading_img=$a(this.btn_area,'img','',{display:'none',marginBottom:'-2px'});this.loading_img.src='lib/images/ui/button-load.gif';if(!keys(this.buttons).length) $dh(this.btn_area);} Listing.prototype.do_print=function(){this.build_query();if(!this.query){alert('No Query!');return;} args={query:this.query,title:this.head_text,colnames:this.colnames,colwidths:this.colwidths,coltypes:this.coltypes,has_index:(this.no_index?0:1),has_headings:1,check_limit:1,is_simple:1} @@ -361,7 +361,7 @@ var me=this;if(!this.filter_set){var h=$a(this.filter_area,'div','',{fontSize:'1 this.filters={};} $ds(this.filter_wrapper);if((!this.inp_tab)||(this.cell_idx==this.filters_per_line)){this.inp_tab=$a(this.filter_area.div,'table','',{width:'100%',tableLayout:'fixed'});this.inp_tab.insertRow(0);for(var i=0;i';var d2=$a(c,'div');if(in_list(['Text','Small Text','Code','Text Editor','Read Only'],ftype)) +var c=this.inp_tab.rows[0].cells[this.cell_idx];this.cell_idx++;$y(c,{width:cint(100/this.filters_per_line)+'%',textAlign:'left',verticalAlign:'top'});var d1=$a(c,'div','',{fontSize:'11px',marginBottom:'2px'});d1.innerHTML=label;if(ftype=='Link')d1.innerHTML+=' ';var d2=$a(c,'div');if(in_list(['Text','Small Text','Code','Text Editor','Read Only'],ftype)) ftype='Data';if(ftype=='Select'&&!in_list(options.split('\n'),''))options='\n'+options var inp=make_field({fieldtype:ftype,'label':label,'options':options,no_buttons:1},'',d2,this,0,1);inp.not_in_form=1;inp.report=this;inp.df.single_select=1;inp.parent_cell=c;inp.parent_tab=this.input_tab;$y(inp.wrapper,{width:'95%'});inp.refresh();inp.tn=tname;inp.fn=fname;inp.condition=cond;var me=this;inp.onchange=function(){me.start=0;} this.filters[label]=inp;this.filter_set=1;} @@ -433,7 +433,7 @@ Listing.prototype.std_cell=function(cell,ri,ci,d){var has_headrow=this.colnames? wn.widgets.Listing=function(opts){this.opts=opts;this.page_length=20;this.btns={};this.start=0;var me=this;this.make=function(opts){this.wrapper=$a(this.opts.parent,'div');this.filters_area=$a(this.wrapper,'div','listing-filters');this.toolbar_area=$a(this.wrapper,'div','listing-toolbar');this.results_area=$a(this.wrapper,'div','listing-results');this.more_button_area=$a(this.wrapper,'div','listing-more');this.no_results_area=$a(this.wrapper,'div','help_box',{display:'none'},(this.opts.no_result_message?this.opts.no_result_message:'No results'));if(opts)this.opts=opts;this.page_length=this.opts.page_length?this.opts.page_length:this.page_length;this.make_toolbar();this.make_filters();this.make_more_button();} this.make_filters=function(){if(this.opts.filters){$ds(this.filters_area);this.filters=new wn.widgets.FieldGroup(this.filters_area,this.opts.fields);}} this.make_toolbar=function(){if(!this.opts.hide_refresh){this.ref_img=$a(this.toolbar_area,'span','link_type',{color:'#888'},'[refresh]');this.ref_img.onclick=function(){me.run();} -this.loading_img=$a(this.toolbar_area,'img','images/ui/button-load.gif',{display:'none',marginLeft:'3px',marginBottom:'-2px'});} +this.loading_img=$a(this.toolbar_area,'img','lib/images/ui/button-load.gif',{display:'none',marginLeft:'3px',marginBottom:'-2px'});} if(this.opts.new_doctype){this.new_btn=$btn(this.toolbar_area,'New '+get_doctype_label(this.opts.new_doctype),function(){newdoc(me.opts.new_doctype,me.opts.new_doc_onload,me.opts.new_doc_indialog,me.opts.new_doc_onsave);},{marginLeft:'7px'});}} this.make_more_button=function(){this.more_btn=$btn(this.more_button_area,'Show more results...',function(){me.more_btn.set_working();me.run(function(){me.more_btn.done_working();},1);},{fontSize:'14px'},0,1);$y(this.more_btn.loading_img,{marginBottom:'0px'});} this.clear=function(){this.results_area.innerHTML='';this.table=null;$ds(this.results_area);$dh(this.no_results_area);} @@ -775,7 +775,7 @@ this.make_one_item=function(item,div){if(item.type.toLowerCase()=='link') this.items[item.label]=new wn.widgets.PageSidebarLink(this,item,div);else if(item.type.toLowerCase()=='button') this.items[item.label]=new wn.widgets.PageSidebarButton(this,this.opts.items[i],div);else if(item.type.toLowerCase()=='html') this.items[item.label]=new wn.widgets.PageSidebarHTML(this,this.opts.items[i],div);} -this.add_icon=function(parent,icon){if(icon.substr(0,3)=='ic-'){var img=$a(parent,'div','wn-icon '+icon,{cssFloat:'left',marginRight:'7px',marginBottom:'-3px'});}else{var img=$a(parent,'img','',{marginRight:'7px',marginBottom:'-3px'});img.src='images/icons/'+icon;}} +this.add_icon=function(parent,icon){if(icon.substr(0,3)=='ic-'){var img=$a(parent,'div','wn-icon '+icon,{cssFloat:'left',marginRight:'7px',marginBottom:'-3px'});}else{var img=$a(parent,'img','',{marginRight:'7px',marginBottom:'-3px'});img.src='lib/images/icons/'+icon;}} this.refresh=function(){this.body.innerHTML='';if(this.opts.render){this.opts.render(this.body);} else this.make_items();} From 25609d0b253b24bda4db407a97fc0a4f3ede4d8c Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Tue, 20 Sep 2011 12:32:40 +0530 Subject: [PATCH 24/26] allow escape characters in password --- cgi-bin/webnotes/model/db_schema.py | 5 ++++- cgi-bin/webnotes/utils/__init__.py | 6 +++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/cgi-bin/webnotes/model/db_schema.py b/cgi-bin/webnotes/model/db_schema.py index e1e02058d2..eb9f73f36f 100644 --- a/cgi-bin/webnotes/model/db_schema.py +++ b/cgi-bin/webnotes/model/db_schema.py @@ -357,8 +357,11 @@ class DbManager: mysql_path = getattr(webnotes.defs, 'mysql_path', None) mysql = mysql_path and os.path.join(mysql_path, 'mysql') or 'mysql' + from webnotes.utils import make_esc + esc = make_esc('$ ') + try: - ret = os.system("%s -u root -p%s %s < %s"%(mysql, root_password.replace(" ", "\ "), target.replace("$", "\$"), source)) + ret = os.system("%s -u root -p%s %s < %s"%(mysql, esc(root_password), esc(target), source)) except Exception,e: raise e diff --git a/cgi-bin/webnotes/utils/__init__.py b/cgi-bin/webnotes/utils/__init__.py index 6e342f1802..b3d044d7dd 100644 --- a/cgi-bin/webnotes/utils/__init__.py +++ b/cgi-bin/webnotes/utils/__init__.py @@ -636,6 +636,10 @@ def get_file_timestamp(fn): else: return None - +def make_esc(esc_chars): + """ + Function generator for Escaping special characters + """ + return lambda s: ''.join(['\\' + c if c in esc_chars else c for c in s]) From 77fc4886ab8709e1c3ec8a5b40a24e3afe666aac Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Wed, 21 Sep 2011 12:02:31 +0530 Subject: [PATCH 25/26] Allow db names containing char $ --- cgi-bin/webnotes/utils/backups.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cgi-bin/webnotes/utils/backups.py b/cgi-bin/webnotes/utils/backups.py index 26e1f98771..db34c8f38b 100644 --- a/cgi-bin/webnotes/utils/backups.py +++ b/cgi-bin/webnotes/utils/backups.py @@ -24,7 +24,7 @@ class BackupGenerator: If specifying db_file_name, also append ".sql.gz" """ def __init__(self, db_name, user, password, db_file_name=None): - self.db_name = db_name + self.db_name = db_name.replace('$', '\$') self.user = user self.password = password self.db_file_name = db_file_name and db_file_name \ From 37009b6e7d075719b99c93ca4425eed5aebe9e2e Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Wed, 21 Sep 2011 12:27:56 +0530 Subject: [PATCH 26/26] os.stat takes parameter path without escaping special characters. Hence, had to un-escape the db file name to check the time stamps --- cgi-bin/webnotes/utils/backups.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cgi-bin/webnotes/utils/backups.py b/cgi-bin/webnotes/utils/backups.py index db34c8f38b..5c74ffe618 100644 --- a/cgi-bin/webnotes/utils/backups.py +++ b/cgi-bin/webnotes/utils/backups.py @@ -28,7 +28,7 @@ class BackupGenerator: self.user = user self.password = password self.db_file_name = db_file_name and db_file_name \ - or (os.path.join(backup_path, db_name + ".sql.gz")) + or (os.path.join(backup_path, self.db_name + ".sql.gz")) def take_dump(self): """ @@ -88,7 +88,7 @@ class BackupGenerator: Also, a new backup will be available for download (if requested)\ only after 24 hours.""" % {"file_url":file_url} - datetime_str = datetime.fromtimestamp(os.stat(self.db_file_name).st_ctime) + datetime_str = datetime.fromtimestamp(os.stat(self.db_file_name.replace('\$', '$')).st_ctime) subject = datetime_str.strftime("%d/%m/%Y %H:%M:%S") + """ - Backup ready to be downloaded""" sendmail(recipients=recipient_list, msg=msg, subject=subject)
*/ + .clearfix:before, + .clearfix:after, + .row:before, + .row:after { + content: '\0020'; + display: block; + overflow: hidden; + visibility: hidden; + width: 0; + height: 0; } + .row:after, + .clearfix:after { + clear: both; } + .row, + .clearfix { + zoom: 1; } + + /* You can also use a
to clear columns */ + .clear { + clear: both; + display: block; + overflow: hidden; + visibility: hidden; + width: 0; + height: 0; + } + + diff --git a/css/ui/overlay.css b/css/ui/overlay.css new file mode 100644 index 0000000000..47daaca95f --- /dev/null +++ b/css/ui/overlay.css @@ -0,0 +1,82 @@ +/* https://github.com/LearnBoost/CSS3-Overlay/ */ + +body.overlaid { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} + +body.overlaid div.overlay { + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + transform: translateY(0); +} + + div.overlay { + /* using display none to hide the overlay nullifies -webkit-transition */ + -webkit-transform: translateY(-50000px); + -moz-transform: translateY(-50000px); + transform: translateY(-50000px); + + position: fixed; + width: 100%; + height: 100%; + top: 0; + left: 0; + background: rgba(0,0,0,0.6); + + -webkit-user-select: auto; + -moz-user-select: auto; + user-select: auto; + } + div.overlay > div.wrap-outer { + position: relative; + width: 100%; + height: 100%; + + display: -webkit-box; + display: -moz-box; + display: box; + + -webkit-box-orient: horizontal; + -moz-box-orient: horizontal; + box-orient: horizontal; + + -webkit-box-align: stretch; + -moz-box-align: stretch; + box-align: stretch; + + -webkit-box-pack: center; + -moz-box-pack: center; + box-pack: center; + } + div.overlay > div.wrap-outer > div.wrap { + display: -webkit-box; + display: -moz-box; + display: box; + + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + box-orient: vertical; + + -webkit-box-align: stretch; + -moz-box-align: stretch; + box-align: stretch; + + -webkit-box-pack: center; + -moz-box-pack: center; + box-pack: center; + } + + div.overlay > div.wrap-outer > div.wrap > * { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + + display: block; + } + +div.overlay > div.wrap-outer > div.wrap > div.dialog { + padding: 21px; + background-color: #fff; +} \ No newline at end of file diff --git a/css/ui/status_bar.css b/css/ui/status_bar.css new file mode 100644 index 0000000000..10e7cbdfca --- /dev/null +++ b/css/ui/status_bar.css @@ -0,0 +1,19 @@ +div.status_bar_outer { + background-color: rgba(0,0,0,0.2); + border: 1px solid rgba(0,0,0,0.4); + height: 21px; + width: 240px; +} + +div.status_bar_inner { + background: #a9e4f7; /* Old browsers */ + background: -moz-linear-gradient(left, #a9e4f7 0%, #0fb4e7 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, right top, color-stop(0%,#a9e4f7), color-stop(100%,#0fb4e7)); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(left, #a9e4f7 0%,#0fb4e7 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(left, #a9e4f7 0%,#0fb4e7 100%); /* Opera11.10+ */ + background: -ms-linear-gradient(left, #a9e4f7 0%,#0fb4e7 100%); /* IE10+ */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#a9e4f7', endColorstr='#0fb4e7',GradientType=1 ); /* IE6-9 */ + background: linear-gradient(left, #a9e4f7 0%,#0fb4e7 100%); /* W3C */ + height: 21px; + width: 0%; +} \ No newline at end of file diff --git a/images/icons/folder.gif b/images/icons/folder.gif new file mode 100644 index 0000000000000000000000000000000000000000..45b191d8ae042575e18df1ae2b689135a32d954e GIT binary patch literal 996 zcmeH`TT4>`0DzA+ZHqE9BLyRu(MuOr_~1Ij<_a%Rh$vk^!CPRl%2tdL!)-Q+l$oSv zbXyj+2a~dbj0l|ubK17tYU-JDIyEP{dG2TDTKj88k9vi03fm2e@FnEO3;-5t#Q3=DUwiRfPtx zVbD`*-h@LnEMlV;+fi?m??X;-xDt8J#pn*JfH#F)GVxgJxk4BS1a kG}l)Y$K`fzJu35jlHP0DB-g8&6UtPEokmOXMiBu10r_2l`v3p{ literal 0 HcmV?d00001 diff --git a/images/icons/icons.png b/images/icons/icons.png new file mode 100644 index 0000000000000000000000000000000000000000..fac6f173f03f8a29fa952fe8b22720ec7a488e44 GIT binary patch literal 53108 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 P;73M6QM^jjDCqwIF6Tl8 literal 0 HcmV?d00001 diff --git a/images/icons/wntoolbar-icons.png b/images/icons/wntoolbar-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..1e17e115934fb4b70e886d07464ab65cf349899b GIT binary patch literal 2762 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 C{XbIx literal 0 HcmV?d00001 diff --git a/js/build.json b/js/build.json new file mode 100644 index 0000000000..ee822313cd --- /dev/null +++ b/js/build.json @@ -0,0 +1,19 @@ +{ + "core.min.js": [ + "wn/provide.js", + "wn/xmlhttp.js", + "wn/assets.js", + "wn/require.js", + "wn/dom.js", + "wn/page.js", + "lib/json2.js", + "core.js" + ], + "lib/superfish/superfish.min.js": [ + "lib/superfish/hoverIntent.js", + "lib/superfish/superfish.js", + "lib/superfish/make_superfish.js", + "lib/superfish/css/superfish.css", + "lib/superfish/css/superfish-vertical.css" + ] +} \ No newline at end of file diff --git a/js/core.js b/js/core.js new file mode 100644 index 0000000000..bb1d7c5204 --- /dev/null +++ b/js/core.js @@ -0,0 +1,33 @@ + +// load all critical libraries +wn.require("lib/js/lib/jquery.min.js"); +//wn.require("lib/js/lib/history/history.min.js"); +wn.require("lib/js/lib/history/history.adapter.jquery.js"); +wn.require("lib/js/lib/history/history.js"); +wn.require("lib/js/lib/history/history.html4.js"); +wn.require("lib/js/wn/history.js"); + +/* overload links for ajax pages */ +$(document).bind('ready', function() { + var base = window.location.href.split('#')[0]; + + // convert hard links to softlinks + $.each($('a[softlink!="false"]'), function(i, v) { + + // if linking on the same site + if(v.href.substr(0, base.length)==base) { + var path = (v.href.substr(base.length)); + + // if hardlink, softlink it + if(path.substr(0,1)!='#') { + v.href = base + '#' + path; + } + } + }); + + // go to hash page if exists + if(window.location.hash) { + wn.page.set(window.location.hash.substr(1)); + } + +}); diff --git a/js/core.min.js b/js/core.min.js new file mode 100644 index 0000000000..c246569965 --- /dev/null +++ b/js/core.min.js @@ -0,0 +1,55 @@ + +wn={} +wn.provide=function(namespace){var nsl=namespace.split('.');var l=nsl.length;var parent=window;for(var i=0;i")&&c[0]);return a>4?a:!1}();return a},l.isInternetExplorer=function(){var a=l.isInternetExplorer.cached=typeof l.isInternetExplorer.cached!="undefined"?l.isInternetExplorer.cached:Boolean(l.getInternetExplorerMajorVersion());return a},l.emulated={pushState:!Boolean(a.history&&a.history.pushState&&a.history.replaceState&&!/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i.test(e.userAgent)&&!/AppleWebKit\/5([0-2]|3[0-2])/i.test(e.userAgent)),hashChange:Boolean(!("onhashchange"in a||"onhashchange"in d)||l.isInternetExplorer()&&l.getInternetExplorerMajorVersion()<8)},l.enabled=!l.emulated.pushState,l.bugs={setHash:Boolean(!l.emulated.pushState&&e.vendor==="Apple Computer, Inc."&&/AppleWebKit\/5([0-2]|3[0-3])/.test(e.userAgent)),safariPoll:Boolean(!l.emulated.pushState&&e.vendor==="Apple Computer, Inc."&&/AppleWebKit\/5([0-2]|3[0-3])/.test(e.userAgent)),ieDoubleCheck:Boolean(l.isInternetExplorer()&&l.getInternetExplorerMajorVersion()<8),hashEscape:Boolean(l.isInternetExplorer()&&l.getInternetExplorerMajorVersion()<7)},l.isEmptyObject=function(a){for(var b in a)return!1;return!0},l.cloneObject=function(a){var b,c;a?(b=k.stringify(a),c=k.parse(b)):c={};return c},l.getRootUrl=function(){var a=d.location.protocol+"//"+(d.location.hostname||d.location.host);if(d.location.port||!1)a+=":"+d.location.port;a+="/";return a},l.getBaseHref=function(){var a=d.getElementsByTagName("base"),b=null,c="";a.length===1&&(b=a[0],c=b.href.replace(/[^\/]+$/,"")),c=c.replace(/\/+$/,""),c&&(c+="/");return c},l.getBaseUrl=function(){var a=l.getBaseHref()||l.getBasePageUrl()||l.getRootUrl();return a},l.getPageUrl=function(){var a=l.getState(!1,!1),b=(a||{}).url||d.location.href,c=b.replace(/\/+$/,"").replace(/[^\/]+$/,function(a,b,c){return/\./.test(a)?a:a+"/"});return c},l.getBasePageUrl=function(){var a=d.location.href.replace(/[#\?].*/,"").replace(/[^\/]+$/,function(a,b,c){return/[^\/]$/.test(a)?"":a}).replace(/\/+$/,"")+"/";return a},l.getFullUrl=function(a,b){var c=a,d=a.substring(0,1);b=typeof b=="undefined"?!0:b,/[a-z]+\:\/\//.test(a)||(d==="/"?c=l.getRootUrl()+a.replace(/^\/+/,""):d==="#"?c=l.getPageUrl().replace(/#.*/,"")+a:d==="?"?c=l.getPageUrl().replace(/[\?#].*/,"")+a:b?c=l.getBaseUrl()+a.replace(/^(\.\/)+/,""):c=l.getBasePageUrl()+a.replace(/^(\.\/)+/,""));return c.replace(/\#$/,"")},l.getShortUrl=function(a){var b=a,c=l.getBaseUrl(),d=l.getRootUrl();l.emulated.pushState&&(b=b.replace(c,"")),b=b.replace(d,"/"),l.isTraditionalAnchor(b)&&(b="./"+b),b=b.replace(/^(\.\/)+/g,"./").replace(/\#$/,"");return b},l.store=f?f.store("History.store")||{}:{},l.store.idToState=l.store.idToState||{},l.store.urlToId=l.store.urlToId||{},l.store.stateToId=l.store.stateToId||{},l.idToState=l.idToState||{},l.stateToId=l.stateToId||{},l.urlToId=l.urlToId||{},l.storedStates=l.storedStates||[],l.savedStates=l.savedStates||[],l.getState=function(a,b){typeof a=="undefined"&&(a=!0),typeof b=="undefined"&&(b=!0);var c=l.getLastSavedState();!c&&b&&(c=l.createStateObject()),a&&(c=l.cloneObject(c),c.url=c.cleanUrl||c.url);return c},l.getIdByState=function(a){var b=l.extractId(a.url);if(!b){var c=l.getStateString(a);if(typeof l.stateToId[c]!="undefined")b=l.stateToId[c];else if(typeof l.store.stateToId[c]!="undefined")b=l.store.stateToId[c];else{for(;;){b=String(Math.floor(Math.random()*1e3));if(typeof l.idToState[b]=="undefined"&&typeof l.store.idToState[b]=="undefined")break}l.stateToId[c]=b,l.idToState[b]=a}}return b},l.normalizeState=function(a){if(!a||typeof a!="object")a={};if(typeof a.normalized!="undefined")return a;if(!a.data||typeof a.data!="object")a.data={};var b={};b.normalized=!0,b.title=a.title||"",b.url=l.getFullUrl(l.unescapeString(a.url||d.location.href)),b.hash=l.getShortUrl(b.url),b.data=l.cloneObject(a.data),b.id=l.getIdByState(b),b.cleanUrl=b.url.replace(/\??\&_suid.*/,""),b.url=b.cleanUrl;var c=!l.isEmptyObject(b.data);if(b.title||c)b.hash=l.getShortUrl(b.url).replace(/\??\&_suid.*/,""),/\?/.test(b.hash)||(b.hash+="?"),b.hash+="&_suid="+b.id;b.hashedUrl=l.getFullUrl(b.hash),(l.emulated.pushState||l.bugs.safariPoll)&&l.hasUrlDuplicate(b)&&(b.url=b.hashedUrl);return b},l.createStateObject=function(a,b,c){var d={data:a,title:b,url:c};d=l.normalizeState(d);return d},l.getStateById=function(a){a=String(a);var c=l.idToState[a]||l.store.idToState[a]||b;return c},l.getStateString=function(a){var b=l.normalizeState(a),c={data:b.data,title:a.title,url:a.url},d=k.stringify(c);return d},l.getStateId=function(a){var b=l.normalizeState(a),c=b.id;return c},l.getHashByState=function(a){var b,c=l.normalizeState(a);b=c.hash;return b},l.extractId=function(a){var b,c,d;c=/(.*)\&_suid=([0-9]+)$/.exec(a),d=c?c[1]||a:a,b=c?String(c[2]||""):"";return b||!1},l.isTraditionalAnchor=function(a){var b=!/[\/\?\.]/.test(a);return b},l.extractState=function(a,b){var c=null;b=b||!1;var d=l.extractId(a);d&&(c=l.getStateById(d));if(!c){var e=l.getFullUrl(a);d=l.getIdByUrl(e)||!1,d&&(c=l.getStateById(d)),!c&&b&&!l.isTraditionalAnchor(a)&&(c=l.createStateObject(null,null,e))}return c},l.getIdByUrl=function(a){var c=l.urlToId[a]||l.store.urlToId[a]||b;return c},l.getLastSavedState=function(){return l.savedStates[l.savedStates.length-1]||b},l.getLastStoredState=function(){return l.storedStates[l.storedStates.length-1]||b},l.hasUrlDuplicate=function(a){var b=!1,c=l.extractState(a.url);b=c&&c.id!==a.id;return b},l.storeState=function(a){l.urlToId[a.url]=a.id,l.storedStates.push(l.cloneObject(a));return a},l.isLastSavedState=function(a){var b=!1;if(l.savedStates.length){var c=a.id,d=l.getLastSavedState(),e=d.id;b=c===e}return b},l.saveState=function(a){if(l.isLastSavedState(a))return!1;l.savedStates.push(l.cloneObject(a));return!0},l.getStateByIndex=function(a){var b=null;typeof a=="undefined"?b=l.savedStates[l.savedStates.length-1]:a<0?b=l.savedStates[l.savedStates.length+a]:b=l.savedStates[a];return b},l.getHash=function(){var a=l.unescapeHash(d.location.hash);return a},l.unescapeString=function(b){var c=b,d;for(;;){d=a.unescape(c);if(d===c)break;c=d}return c},l.unescapeHash=function(a){var b=l.normalizeHash(a);b=l.unescapeString(b);return b},l.normalizeHash=function(a){var b=a.replace(/[^#]*#/,"").replace(/#.*/,"");return b},l.setHash=function(a,b){if(b!==!1&&l.busy()){l.pushQueue({scope:l,callback:l.setHash,args:arguments,queue:b});return!1}var c=l.escapeHash(a);l.busy(!0);var e=l.extractState(a,!0);if(e&&!l.emulated.pushState)l.pushState(e.data,e.title,e.url,!1);else if(d.location.hash!==c)if(l.bugs.setHash){var f=l.getPageUrl();l.pushState(null,null,f+"#"+c,!1)}else d.location.hash=c;return l},l.escapeHash=function(b){var c=l.normalizeHash(b);c=a.escape(c),l.bugs.hashEscape||(c=c.replace(/\%21/g,"!").replace(/\%26/g,"&").replace(/\%3D/g,"=").replace(/\%3F/g,"?"));return c},l.getHashByUrl=function(a){var b=String(a).replace(/([^#]*)#?([^#]*)#?(.*)/,"$2");b=l.unescapeHash(b);return b},l.setTitle=function(a){var b=a.title;if(!b){var c=l.getStateByIndex(0);c&&c.url===a.url&&(b=c.title||l.options.initialTitle)}try{d.getElementsByTagName("title")[0].innerHTML=b.replace("<","<").replace(">",">").replace(" & "," & ")}catch(e){}d.title=b;return l},l.queues=[],l.busy=function(a){typeof a!="undefined"?l.busy.flag=a:typeof l.busy.flag=="undefined"&&(l.busy.flag=!1);if(!l.busy.flag){h(l.busy.timeout);var b=function(){if(!l.busy.flag)for(var a=l.queues.length-1;a>=0;--a){var c=l.queues[a];if(c.length===0)continue;var d=c.shift();l.fireQueueItem(d),l.busy.timeout=g(b,l.options.busyDelay)}};l.busy.timeout=g(b,l.options.busyDelay)}return l.busy.flag},l.fireQueueItem=function(a){return a.callback.apply(a.scope||l,a.args||[])},l.pushQueue=function(a){l.queues[a.queue||0]=l.queues[a.queue||0]||[],l.queues[a.queue||0].push(a);return l},l.queue=function(a,b){typeof a=="function"&&(a={callback:a}),typeof b!="undefined"&&(a.queue=b),l.busy()?l.pushQueue(a):l.fireQueueItem(a);return l},l.clearQueue=function(){l.busy.flag=!1,l.queues=[];return l},l.stateChanged=!1,l.doubleChecker=!1,l.doubleCheckComplete=function(){l.stateChanged=!0,l.doubleCheckClear();return l},l.doubleCheckClear=function(){l.doubleChecker&&(h(l.doubleChecker),l.doubleChecker=!1);return l},l.doubleCheck=function(a){l.stateChanged=!1,l.doubleCheckClear(),l.bugs.ieDoubleCheck&&(l.doubleChecker=g(function(){l.doubleCheckClear(),l.stateChanged||a();return!0},l.options.doubleCheckInterval));return l},l.safariStatePoll=function(){var b=l.extractState(d.location.href),c;if(!l.isLastSavedState(b))c=b;else return;c||(c=l.createStateObject()),l.Adapter.trigger(a,"popstate");return l},l.back=function(a){if(a!==!1&&l.busy()){l.pushQueue({scope:l,callback:l.back,args:arguments,queue:a});return!1}l.busy(!0),l.doubleCheck(function(){l.back(!1)}),m.go(-1);return!0},l.forward=function(a){if(a!==!1&&l.busy()){l.pushQueue({scope:l,callback:l.forward,args:arguments,queue:a});return!1}l.busy(!0),l.doubleCheck(function(){l.forward(!1)}),m.go(1);return!0},l.go=function(a,b){var c;if(a>0)for(c=1;c<=a;++c)l.forward(b);else{if(!(a<0))throw new Error("History.go: History.go requires a positive or negative integer passed.");for(c=-1;c>=a;--c)l.back(b)}return l},l.saveState(l.storeState(l.extractState(d.location.href,!0))),f&&(l.onUnload=function(){var a=f.store("History.store")||{},b;a.idToState=a.idToState||{},a.urlToId=a.urlToId||{},a.stateToId=a.stateToId||{};for(b in l.idToState){if(!l.idToState.hasOwnProperty(b))continue;a.idToState[b]=l.idToState[b]}for(b in l.urlToId){if(!l.urlToId.hasOwnProperty(b))continue;a.urlToId[b]=l.urlToId[b]}for(b in l.stateToId){if(!l.stateToId.hasOwnProperty(b))continue;a.stateToId[b]=l.stateToId[b]}l.store=a,f.store("History.store",a)},l.intervalList.push(i(l.onUnload,l.options.storeInterval)),l.Adapter.bind(a,"beforeunload",l.onUnload),l.Adapter.bind(a,"unload",l.onUnload));if(l.emulated.pushState){var n=function(){};l.pushState=l.pushState||n,l.replaceState=l.replaceState||n}else{l.onPopState=function(b){l.doubleCheckComplete();var c=l.getHash();if(c){var e=l.extractState(c||d.location.href,!0);e?l.replaceState(e.data,e.title,e.url,!1):(l.Adapter.trigger(a,"anchorchange"),l.busy(!1)),l.expectedStateId=!1;return!1}var f=!1;b=b||{},typeof b.state=="undefined"&&(typeof b.originalEvent!="undefined"&&typeof b.originalEvent.state!="undefined"?b.state=b.originalEvent.state||!1:typeof b.event!="undefined"&&typeof b.event.state!="undefined"&&(b.state=b.event.state||!1)),b.state=b.state||!1,b.state?f=l.getStateById(b.state):l.expectedStateId?f=l.getStateById(l.expectedStateId):f=l.extractState(d.location.href),f||(f=l.createStateObject(null,null,d.location.href)),l.expectedStateId=!1;if(l.isLastSavedState(f)){l.busy(!1);return!1}l.storeState(f),l.saveState(f),l.setTitle(f),l.Adapter.trigger(a,"statechange"),l.busy(!1);return!0},l.Adapter.bind(a,"popstate",l.onPopState),l.pushState=function(b,c,d,e){if(l.getHashByUrl(d)&&l.emulated.pushState)throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(e!==!1&&l.busy()){l.pushQueue({scope:l,callback:l.pushState,args:arguments,queue:e});return!1}l.busy(!0);var f=l.createStateObject(b,c,d);l.isLastSavedState(f)?l.busy(!1):(l.storeState(f),l.expectedStateId=f.id,m.pushState(f.id,f.title,f.url),l.Adapter.trigger(a,"popstate"));return!0},l.replaceState=function(b,c,d,e){if(l.getHashByUrl(d)&&l.emulated.pushState)throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(e!==!1&&l.busy()){l.pushQueue({scope:l,callback:l.replaceState,args:arguments,queue:e});return!1}l.busy(!0);var f=l.createStateObject(b,c,d);l.isLastSavedState(f)?l.busy(!1):(l.storeState(f),l.expectedStateId=f.id,m.replaceState(f.id,f.title,f.url),l.Adapter.trigger(a,"popstate"));return!0},l.bugs.safariPoll&&l.intervalList.push(i(l.safariStatePoll,l.options.safariPollInterval));if(e.vendor==="Apple Computer, Inc."||(e.appCodeName||"")==="Mozilla")l.Adapter.bind(a,"hashchange",function(){l.Adapter.trigger(a,"popstate")}),l.getHash()&&l.Adapter.onDomLoad(function(){l.Adapter.trigger(a,"hashchange")})}},l.init()})(window) \ No newline at end of file diff --git a/js/lib/history/history.min.js b/js/lib/history/history.min.js new file mode 100644 index 0000000000..a4851329ed --- /dev/null +++ b/js/lib/history/history.min.js @@ -0,0 +1,19 @@ +(function(a,b){var c=a.History=a.History||{},d=a.jQuery;if(typeof c.Adapter!="undefined")throw new Error("History.js Adapter has already been loaded...");c.Adapter={bind:function(a,b,c){d(a).bind(b,c)},trigger:function(a,b){d(a).trigger(b)},onDomLoad:function(a){d(a)}},typeof c.init!="undefined"&&c.init()})(window) +(function(a,b){"use strict";var c=a.console||b,d=a.document,e=a.navigator,f=a.amplify||!1,g=a.setTimeout,h=a.clearTimeout,i=a.setInterval,j=a.clearInterval,k=a.JSON,l=a.History=a.History||{},m=a.history;k.stringify=k.stringify||k.encode,k.parse=k.parse||k.decode;if(typeof l.init!="undefined")throw new Error("History.js Core has already been loaded...");l.init=function(){if(typeof l.Adapter=="undefined")return!1;typeof l.initCore!="undefined"&&l.initCore(),typeof l.initHtml4!="undefined"&&l.initHtml4();return!0},l.initCore=function(){if(typeof l.initCore.initialized!="undefined")return!1;l.initCore.initialized=!0,l.options=l.options||{},l.options.hashChangeInterval=l.options.hashChangeInterval||100,l.options.safariPollInterval=l.options.safariPollInterval||500,l.options.doubleCheckInterval=l.options.doubleCheckInterval||500,l.options.storeInterval=l.options.storeInterval||1e3,l.options.busyDelay=l.options.busyDelay||250,l.options.debug=l.options.debug||!1,l.options.initialTitle=l.options.initialTitle||d.title,l.intervalList=[],l.clearAllIntervals=function(){var a,b=l.intervalList;if(typeof b!="undefined"&&b!==null){for(a=0;a")&&c[0]);return a>4?a:!1}();return a},l.isInternetExplorer=function(){var a=l.isInternetExplorer.cached=typeof l.isInternetExplorer.cached!="undefined"?l.isInternetExplorer.cached:Boolean(l.getInternetExplorerMajorVersion());return a},l.emulated={pushState:!Boolean(a.history&&a.history.pushState&&a.history.replaceState&&!/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i.test(e.userAgent)&&!/AppleWebKit\/5([0-2]|3[0-2])/i.test(e.userAgent)),hashChange:Boolean(!("onhashchange"in a||"onhashchange"in d)||l.isInternetExplorer()&&l.getInternetExplorerMajorVersion()<8)},l.enabled=!l.emulated.pushState,l.bugs={setHash:Boolean(!l.emulated.pushState&&e.vendor==="Apple Computer, Inc."&&/AppleWebKit\/5([0-2]|3[0-3])/.test(e.userAgent)),safariPoll:Boolean(!l.emulated.pushState&&e.vendor==="Apple Computer, Inc."&&/AppleWebKit\/5([0-2]|3[0-3])/.test(e.userAgent)),ieDoubleCheck:Boolean(l.isInternetExplorer()&&l.getInternetExplorerMajorVersion()<8),hashEscape:Boolean(l.isInternetExplorer()&&l.getInternetExplorerMajorVersion()<7)},l.isEmptyObject=function(a){for(var b in a)return!1;return!0},l.cloneObject=function(a){var b,c;a?(b=k.stringify(a),c=k.parse(b)):c={};return c},l.getRootUrl=function(){var a=d.location.protocol+"//"+(d.location.hostname||d.location.host);if(d.location.port||!1)a+=":"+d.location.port;a+="/";return a},l.getBaseHref=function(){var a=d.getElementsByTagName("base"),b=null,c="";a.length===1&&(b=a[0],c=b.href.replace(/[^\/]+$/,"")),c=c.replace(/\/+$/,""),c&&(c+="/");return c},l.getBaseUrl=function(){var a=l.getBaseHref()||l.getBasePageUrl()||l.getRootUrl();return a},l.getPageUrl=function(){var a=l.getState(!1,!1),b=(a||{}).url||d.location.href,c=b.replace(/\/+$/,"").replace(/[^\/]+$/,function(a,b,c){return/\./.test(a)?a:a+"/"});return c},l.getBasePageUrl=function(){var a=d.location.href.replace(/[#\?].*/,"").replace(/[^\/]+$/,function(a,b,c){return/[^\/]$/.test(a)?"":a}).replace(/\/+$/,"")+"/";return a},l.getFullUrl=function(a,b){var c=a,d=a.substring(0,1);b=typeof b=="undefined"?!0:b,/[a-z]+\:\/\//.test(a)||(d==="/"?c=l.getRootUrl()+a.replace(/^\/+/,""):d==="#"?c=l.getPageUrl().replace(/#.*/,"")+a:d==="?"?c=l.getPageUrl().replace(/[\?#].*/,"")+a:b?c=l.getBaseUrl()+a.replace(/^(\.\/)+/,""):c=l.getBasePageUrl()+a.replace(/^(\.\/)+/,""));return c.replace(/\#$/,"")},l.getShortUrl=function(a){var b=a,c=l.getBaseUrl(),d=l.getRootUrl();l.emulated.pushState&&(b=b.replace(c,"")),b=b.replace(d,"/"),l.isTraditionalAnchor(b)&&(b="./"+b),b=b.replace(/^(\.\/)+/g,"./").replace(/\#$/,"");return b},l.store=f?f.store("History.store")||{}:{},l.store.idToState=l.store.idToState||{},l.store.urlToId=l.store.urlToId||{},l.store.stateToId=l.store.stateToId||{},l.idToState=l.idToState||{},l.stateToId=l.stateToId||{},l.urlToId=l.urlToId||{},l.storedStates=l.storedStates||[],l.savedStates=l.savedStates||[],l.getState=function(a,b){typeof a=="undefined"&&(a=!0),typeof b=="undefined"&&(b=!0);var c=l.getLastSavedState();!c&&b&&(c=l.createStateObject()),a&&(c=l.cloneObject(c),c.url=c.cleanUrl||c.url);return c},l.getIdByState=function(a){var b=l.extractId(a.url);if(!b){var c=l.getStateString(a);if(typeof l.stateToId[c]!="undefined")b=l.stateToId[c];else if(typeof l.store.stateToId[c]!="undefined")b=l.store.stateToId[c];else{for(;;){b=String(Math.floor(Math.random()*1e3));if(typeof l.idToState[b]=="undefined"&&typeof l.store.idToState[b]=="undefined")break}l.stateToId[c]=b,l.idToState[b]=a}}return b},l.normalizeState=function(a){if(!a||typeof a!="object")a={};if(typeof a.normalized!="undefined")return a;if(!a.data||typeof a.data!="object")a.data={};var b={};b.normalized=!0,b.title=a.title||"",b.url=l.getFullUrl(l.unescapeString(a.url||d.location.href)),b.hash=l.getShortUrl(b.url),b.data=l.cloneObject(a.data),b.id=l.getIdByState(b),b.cleanUrl=b.url.replace(/\??\&_suid.*/,""),b.url=b.cleanUrl;var c=!l.isEmptyObject(b.data);if(b.title||c)b.hash=l.getShortUrl(b.url).replace(/\??\&_suid.*/,""),/\?/.test(b.hash)||(b.hash+="?"),b.hash+="&_suid="+b.id;b.hashedUrl=l.getFullUrl(b.hash),(l.emulated.pushState||l.bugs.safariPoll)&&l.hasUrlDuplicate(b)&&(b.url=b.hashedUrl);return b},l.createStateObject=function(a,b,c){var d={data:a,title:b,url:c};d=l.normalizeState(d);return d},l.getStateById=function(a){a=String(a);var c=l.idToState[a]||l.store.idToState[a]||b;return c},l.getStateString=function(a){var b=l.normalizeState(a),c={data:b.data,title:a.title,url:a.url},d=k.stringify(c);return d},l.getStateId=function(a){var b=l.normalizeState(a),c=b.id;return c},l.getHashByState=function(a){var b,c=l.normalizeState(a);b=c.hash;return b},l.extractId=function(a){var b,c,d;c=/(.*)\&_suid=([0-9]+)$/.exec(a),d=c?c[1]||a:a,b=c?String(c[2]||""):"";return b||!1},l.isTraditionalAnchor=function(a){var b=!/[\/\?\.]/.test(a);return b},l.extractState=function(a,b){var c=null;b=b||!1;var d=l.extractId(a);d&&(c=l.getStateById(d));if(!c){var e=l.getFullUrl(a);d=l.getIdByUrl(e)||!1,d&&(c=l.getStateById(d)),!c&&b&&!l.isTraditionalAnchor(a)&&(c=l.createStateObject(null,null,e))}return c},l.getIdByUrl=function(a){var c=l.urlToId[a]||l.store.urlToId[a]||b;return c},l.getLastSavedState=function(){return l.savedStates[l.savedStates.length-1]||b},l.getLastStoredState=function(){return l.storedStates[l.storedStates.length-1]||b},l.hasUrlDuplicate=function(a){var b=!1,c=l.extractState(a.url);b=c&&c.id!==a.id;return b},l.storeState=function(a){l.urlToId[a.url]=a.id,l.storedStates.push(l.cloneObject(a));return a},l.isLastSavedState=function(a){var b=!1;if(l.savedStates.length){var c=a.id,d=l.getLastSavedState(),e=d.id;b=c===e}return b},l.saveState=function(a){if(l.isLastSavedState(a))return!1;l.savedStates.push(l.cloneObject(a));return!0},l.getStateByIndex=function(a){var b=null;typeof a=="undefined"?b=l.savedStates[l.savedStates.length-1]:a<0?b=l.savedStates[l.savedStates.length+a]:b=l.savedStates[a];return b},l.getHash=function(){var a=l.unescapeHash(d.location.hash);return a},l.unescapeString=function(b){var c=b,d;for(;;){d=a.unescape(c);if(d===c)break;c=d}return c},l.unescapeHash=function(a){var b=l.normalizeHash(a);b=l.unescapeString(b);return b},l.normalizeHash=function(a){var b=a.replace(/[^#]*#/,"").replace(/#.*/,"");return b},l.setHash=function(a,b){if(b!==!1&&l.busy()){l.pushQueue({scope:l,callback:l.setHash,args:arguments,queue:b});return!1}var c=l.escapeHash(a);l.busy(!0);var e=l.extractState(a,!0);if(e&&!l.emulated.pushState)l.pushState(e.data,e.title,e.url,!1);else if(d.location.hash!==c)if(l.bugs.setHash){var f=l.getPageUrl();l.pushState(null,null,f+"#"+c,!1)}else d.location.hash=c;return l},l.escapeHash=function(b){var c=l.normalizeHash(b);c=a.escape(c),l.bugs.hashEscape||(c=c.replace(/\%21/g,"!").replace(/\%26/g,"&").replace(/\%3D/g,"=").replace(/\%3F/g,"?"));return c},l.getHashByUrl=function(a){var b=String(a).replace(/([^#]*)#?([^#]*)#?(.*)/,"$2");b=l.unescapeHash(b);return b},l.setTitle=function(a){var b=a.title;if(!b){var c=l.getStateByIndex(0);c&&c.url===a.url&&(b=c.title||l.options.initialTitle)}try{d.getElementsByTagName("title")[0].innerHTML=b.replace("<","<").replace(">",">").replace(" & "," & ")}catch(e){}d.title=b;return l},l.queues=[],l.busy=function(a){typeof a!="undefined"?l.busy.flag=a:typeof l.busy.flag=="undefined"&&(l.busy.flag=!1);if(!l.busy.flag){h(l.busy.timeout);var b=function(){if(!l.busy.flag)for(var a=l.queues.length-1;a>=0;--a){var c=l.queues[a];if(c.length===0)continue;var d=c.shift();l.fireQueueItem(d),l.busy.timeout=g(b,l.options.busyDelay)}};l.busy.timeout=g(b,l.options.busyDelay)}return l.busy.flag},l.fireQueueItem=function(a){return a.callback.apply(a.scope||l,a.args||[])},l.pushQueue=function(a){l.queues[a.queue||0]=l.queues[a.queue||0]||[],l.queues[a.queue||0].push(a);return l},l.queue=function(a,b){typeof a=="function"&&(a={callback:a}),typeof b!="undefined"&&(a.queue=b),l.busy()?l.pushQueue(a):l.fireQueueItem(a);return l},l.clearQueue=function(){l.busy.flag=!1,l.queues=[];return l},l.stateChanged=!1,l.doubleChecker=!1,l.doubleCheckComplete=function(){l.stateChanged=!0,l.doubleCheckClear();return l},l.doubleCheckClear=function(){l.doubleChecker&&(h(l.doubleChecker),l.doubleChecker=!1);return l},l.doubleCheck=function(a){l.stateChanged=!1,l.doubleCheckClear(),l.bugs.ieDoubleCheck&&(l.doubleChecker=g(function(){l.doubleCheckClear(),l.stateChanged||a();return!0},l.options.doubleCheckInterval));return l},l.safariStatePoll=function(){var b=l.extractState(d.location.href),c;if(!l.isLastSavedState(b))c=b;else return;c||(c=l.createStateObject()),l.Adapter.trigger(a,"popstate");return l},l.back=function(a){if(a!==!1&&l.busy()){l.pushQueue({scope:l,callback:l.back,args:arguments,queue:a});return!1}l.busy(!0),l.doubleCheck(function(){l.back(!1)}),m.go(-1);return!0},l.forward=function(a){if(a!==!1&&l.busy()){l.pushQueue({scope:l,callback:l.forward,args:arguments,queue:a});return!1}l.busy(!0),l.doubleCheck(function(){l.forward(!1)}),m.go(1);return!0},l.go=function(a,b){var c;if(a>0)for(c=1;c<=a;++c)l.forward(b);else{if(!(a<0))throw new Error("History.go: History.go requires a positive or negative integer passed.");for(c=-1;c>=a;--c)l.back(b)}return l},l.saveState(l.storeState(l.extractState(d.location.href,!0))),f&&(l.onUnload=function(){var a=f.store("History.store")||{},b;a.idToState=a.idToState||{},a.urlToId=a.urlToId||{},a.stateToId=a.stateToId||{};for(b in l.idToState){if(!l.idToState.hasOwnProperty(b))continue;a.idToState[b]=l.idToState[b]}for(b in l.urlToId){if(!l.urlToId.hasOwnProperty(b))continue;a.urlToId[b]=l.urlToId[b]}for(b in l.stateToId){if(!l.stateToId.hasOwnProperty(b))continue;a.stateToId[b]=l.stateToId[b]}l.store=a,f.store("History.store",a)},l.intervalList.push(i(l.onUnload,l.options.storeInterval)),l.Adapter.bind(a,"beforeunload",l.onUnload),l.Adapter.bind(a,"unload",l.onUnload));if(l.emulated.pushState){var n=function(){};l.pushState=l.pushState||n,l.replaceState=l.replaceState||n}else{l.onPopState=function(b){l.doubleCheckComplete();var c=l.getHash();if(c){var e=l.extractState(c||d.location.href,!0);e?l.replaceState(e.data,e.title,e.url,!1):(l.Adapter.trigger(a,"anchorchange"),l.busy(!1)),l.expectedStateId=!1;return!1}var f=!1;b=b||{},typeof b.state=="undefined"&&(typeof b.originalEvent!="undefined"&&typeof b.originalEvent.state!="undefined"?b.state=b.originalEvent.state||!1:typeof b.event!="undefined"&&typeof b.event.state!="undefined"&&(b.state=b.event.state||!1)),b.state=b.state||!1,b.state?f=l.getStateById(b.state):l.expectedStateId?f=l.getStateById(l.expectedStateId):f=l.extractState(d.location.href),f||(f=l.createStateObject(null,null,d.location.href)),l.expectedStateId=!1;if(l.isLastSavedState(f)){l.busy(!1);return!1}l.storeState(f),l.saveState(f),l.setTitle(f),l.Adapter.trigger(a,"statechange"),l.busy(!1);return!0},l.Adapter.bind(a,"popstate",l.onPopState),l.pushState=function(b,c,d,e){if(l.getHashByUrl(d)&&l.emulated.pushState)throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(e!==!1&&l.busy()){l.pushQueue({scope:l,callback:l.pushState,args:arguments,queue:e});return!1}l.busy(!0);var f=l.createStateObject(b,c,d);l.isLastSavedState(f)?l.busy(!1):(l.storeState(f),l.expectedStateId=f.id,m.pushState(f.id,f.title,f.url),l.Adapter.trigger(a,"popstate"));return!0},l.replaceState=function(b,c,d,e){if(l.getHashByUrl(d)&&l.emulated.pushState)throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(e!==!1&&l.busy()){l.pushQueue({scope:l,callback:l.replaceState,args:arguments,queue:e});return!1}l.busy(!0);var f=l.createStateObject(b,c,d);l.isLastSavedState(f)?l.busy(!1):(l.storeState(f),l.expectedStateId=f.id,m.replaceState(f.id,f.title,f.url),l.Adapter.trigger(a,"popstate"));return!0},l.bugs.safariPoll&&l.intervalList.push(i(l.safariStatePoll,l.options.safariPollInterval));if(e.vendor==="Apple Computer, Inc."||(e.appCodeName||"")==="Mozilla")l.Adapter.bind(a,"hashchange",function(){l.Adapter.trigger(a,"popstate")}),l.getHash()&&l.Adapter.onDomLoad(function(){l.Adapter.trigger(a,"hashchange")})}},l.init()})(window) +(function(a,b){"use strict";var c=a.document,d=a.setTimeout||d,e=a.clearTimeout||e,f=a.setInterval||f,g=a.History=a.History||{};if(typeof g.initHtml4!="undefined")throw new Error("History.js HTML4 Support has already been loaded...");g.initHtml4=function(){if(typeof g.initHtml4.initialized!="undefined")return!1;g.initHtml4.initialized=!0,g.enabled=!0,g.savedHashes=[],g.isLastHash=function(a){var b=g.getHashByIndex(),c=a===b;return c},g.saveHash=function(a){if(g.isLastHash(a))return!1;g.savedHashes.push(a);return!0},g.getHashByIndex=function(a){var b=null;typeof a=="undefined"?b=g.savedHashes[g.savedHashes.length-1]:a<0?b=g.savedHashes[g.savedHashes.length+a]:b=g.savedHashes[a];return b},g.discardedHashes={},g.discardedStates={},g.discardState=function(a,b,c){var d=g.getHashByState(a),e={discardedState:a,backState:c,forwardState:b};g.discardedStates[d]=e;return!0},g.discardHash=function(a,b,c){var d={discardedHash:a,backState:c,forwardState:b};g.discardedHashes[a]=d;return!0},g.discardedState=function(a){var b=g.getHashByState(a),c=g.discardedStates[b]||!1;return c},g.discardedHash=function(a){var b=g.discardedHashes[a]||!1;return b},g.recycleState=function(a){var b=g.getHashByState(a);g.discardedState(a)&&delete g.discardedStates[b];return!0},g.emulated.hashChange&&(g.hashChangeInit=function(){g.checkerFunction=null;var b="";if(g.isInternetExplorer()){var d="historyjs-iframe",e=c.createElement("iframe");e.setAttribute("id",d),e.style.display="none",c.body.appendChild(e),e.contentWindow.document.open(),e.contentWindow.document.close();var h="",i=!1;g.checkerFunction=function(){if(i)return!1;i=!0;var c=g.getHash()||"",d=g.unescapeHash(e.contentWindow.document.location.hash)||"";c!==b?(b=c,d!==c&&(h=d=c,e.contentWindow.document.open(),e.contentWindow.document.close(),e.contentWindow.document.location.hash=g.escapeHash(c)),g.Adapter.trigger(a,"hashchange")):d!==h&&(h=d,g.setHash(d,!1)),i=!1;return!0}}else g.checkerFunction=function(){var c=g.getHash();c!==b&&(b=c,g.Adapter.trigger(a,"hashchange"));return!0};g.intervalList.push(f(g.checkerFunction,g.options.hashChangeInterval));return!0},g.Adapter.onDomLoad(g.hashChangeInit)),g.emulated.pushState&&(g.onHashChange=function(b){var d=b&&b.newURL||c.location.href,e=g.getHashByUrl(d),f=null,h=null,i=null;if(g.isLastHash(e)){g.busy(!1);return!1}g.doubleCheckComplete(),g.saveHash(e);if(e&&g.isTraditionalAnchor(e)){g.Adapter.trigger(a,"anchorchange"),g.busy(!1);return!1}f=g.extractState(g.getFullUrl(e||c.location.href,!1),!0);if(g.isLastSavedState(f)){g.busy(!1);return!1}h=g.getHashByState(f);var j=g.discardedState(f);if(j){g.getHashByIndex(-2)===g.getHashByState(j.forwardState)?g.back(!1):g.forward(!1);return!1}g.pushState(f.data,f.title,f.url,!1);return!0},g.Adapter.bind(a,"hashchange",g.onHashChange),g.pushState=function(b,d,e,f){if(g.getHashByUrl(e))throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(f!==!1&&g.busy()){g.pushQueue({scope:g,callback:g.pushState,args:arguments,queue:f});return!1}g.busy(!0);var h=g.createStateObject(b,d,e),i=g.getHashByState(h),j=g.getState(!1),k=g.getHashByState(j),l=g.getHash();g.storeState(h),g.expectedStateId=h.id,g.recycleState(h),g.setTitle(h);if(i===k){g.busy(!1);return!1}if(i!==l&&i!==g.getShortUrl(c.location.href)){g.setHash(i,!1);return!1}g.saveState(h),g.Adapter.trigger(a,"statechange"),g.busy(!1);return!0},g.replaceState=function(a,b,c,d){if(g.getHashByUrl(c))throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(d!==!1&&g.busy()){g.pushQueue({scope:g,callback:g.replaceState,args:arguments,queue:d});return!1}g.busy(!0);var e=g.createStateObject(a,b,c),f=g.getState(!1),h=g.getStateByIndex(-2);g.discardState(f,e,h),g.pushState(e.data,e.title,e.url,!1);return!0},g.getHash()&&!g.emulated.hashChange&&g.Adapter.onDomLoad(function(){g.Adapter.trigger(a,"hashchange")}))},g.init()})(window) +// manage history +// load pages via ajax +// setup the history adapter +// if settings no_history is set, no history will be bound +// this can be used to make it work with legacy + +$(document).bind('ready', function() { + if(wn.settings.no_history) return; + History.Adapter.bind(window,'statechange',function() { + var state = History.getState(); + + // load the state on the browser + wn.page.set(state.hash, state.title); + }); +}) + diff --git a/js/lib/jquery.min.js b/js/lib/jquery.min.js new file mode 100644 index 0000000000..8cdc80eb85 --- /dev/null +++ b/js/lib/jquery.min.js @@ -0,0 +1,18 @@ +/*! + * jQuery JavaScript Library v1.6.2 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Thu Jun 30 14:16:56 2011 -0400 + */ +(function(a,b){function cv(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cs(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"":"")+""),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cr(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cq(){cn=b}function cp(){setTimeout(cq,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bx(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bm(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(be,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bl(a){f.nodeName(a,"input")?bk(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bk)}function bk(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bj(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bi(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bh(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i=0===c})}function V(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function N(a,b){return(a&&a!=="*"?a+".":"")+b.replace(z,"`").replace(A,"&")}function M(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;ic)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function K(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function E(){return!0}function D(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z])/ig,x=function(a,b){return b.toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!A){A=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||D.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c
a",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0},m&&f.extend(p,{position:"absolute",left:-1e3,top:-1e3});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
t
",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]||i[c]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=w:v&&c!=="className"&&(f.nodeName(a,"form")||u.test(c))&&(i=v)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}},value:{get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return f.prop(a,c)?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.attrHooks.title=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=/\.(.*)$/,y=/^(?:textarea|input|select)$/i,z=/\./g,A=/ /g,B=/[^\w\s.|`]/g,C=function(a){return a.replace(B,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=D;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=D);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),C).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i. +shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},J=function(c){var d=c.target,e,g;if(!!y.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=I(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:J,beforedeactivate:J,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&J.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&J.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",I(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in H)f.event.add(this,c+".specialChange",H[c]);return y.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return y.test(this.nodeName)}},H=f.event.special.change.filters,H.focus=H.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(h=g;h0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=T.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(V(c[0])||V(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=S.call(arguments);O.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!U[a]?f.unique(e):e,(this.length>1||Q.test(d))&&P.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var X=/ jQuery\d+="(?:\d+|null)"/g,Y=/^\s+/,Z=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,$=/<([\w:]+)/,_=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};bf.optgroup=bf.option,bf.tbody=bf.tfoot=bf.colgroup=bf.caption=bf.thead,bf.th=bf.td,f.support.htmlSerialize||(bf._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(X,""):null;if(typeof a=="string"&&!bb.test(a)&&(f.support.leadingWhitespace||!Y.test(a))&&!bf[($.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Z,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j +)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bi(a,d),e=bj(a),g=bj(d);for(h=0;e[h];++h)bi(e[h],g[h])}if(b){bh(a,d);if(c){e=bj(a),g=bj(d);for(h=0;e[h];++h)bh(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!ba.test(k))k=b.createTextNode(k);else{k=k.replace(Z,"<$1>");var l=($.exec(k)||["",""])[1].toLowerCase(),m=bf[l]||bf._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=_.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Y.test(k)&&o.insertBefore(b.createTextNode(Y.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bo.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bn.test(g)?g.replace(bn,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bx(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(by=function(a,c){var d,e,g;c=c.replace(bp,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bz=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bq.test(d)&&br.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bx=by||bz,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bB=/%20/g,bC=/\[\]$/,bD=/\r?\n/g,bE=/#.*$/,bF=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bG=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bH=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bI=/^(?:GET|HEAD)$/,bJ=/^\/\//,bK=/\?/,bL=/)<[^<]*)*<\/script>/gi,bM=/^(?:select|textarea)/i,bN=/\s+/,bO=/([?&])_=[^&]*/,bP=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bQ=f.fn.load,bR={},bS={},bT,bU;try{bT=e.href}catch(bV){bT=c.createElement("a"),bT.href="",bT=bT.href}bU=bP.exec(bT.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bQ)return bQ.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bL,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bM.test(this.nodeName)||bG.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bD,"\r\n")}}):{name:b.name,value:c.replace(bD,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bT,isLocal:bH.test(bU[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bW(bR),ajaxTransport:bW(bS),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?bZ(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=b$(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bF.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bE,"").replace(bJ,bU[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bN),d.crossDomain==null&&(r=bP.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bU[1]&&r[2]==bU[2]&&(r[3]||(r[1]==="http:"?80:443))==(bU[3]||(bU[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bX(bR,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bI.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bK.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bO,"$1_="+x);d.url=y+(y===d.url?(bK.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bX(bS,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bY(g,a[g],c,e);return d.join("&").replace(bB,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ca.test(b.url)||e&&ca.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ca,l),b.url===j&&(e&&(k=k.replace(ca,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cb&&delete cd[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn,co=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cr("show",3),a,b,c);for(var g=0,h=this.length;g=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b
";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cu.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cu.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cv(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cv(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window); \ No newline at end of file diff --git a/js/lib/json2.js b/js/lib/json2.js new file mode 100644 index 0000000000..b4c02d3f08 --- /dev/null +++ b/js/lib/json2.js @@ -0,0 +1,480 @@ +/* + http://www.JSON.org/json2.js + 2011-02-23 + + Public Domain. + + NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. + + See http://www.JSON.org/js.html + + + This code should be minified before deployment. + See http://javascript.crockford.com/jsmin.html + + USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO + NOT CONTROL. + + + This file creates a global JSON object containing two methods: stringify + and parse. + + JSON.stringify(value, replacer, space) + value any JavaScript value, usually an object or array. + + replacer an optional parameter that determines how object + values are stringified for objects. It can be a + function or an array of strings. + + space an optional parameter that specifies the indentation + of nested structures. If it is omitted, the text will + be packed without extra whitespace. If it is a number, + it will specify the number of spaces to indent at each + level. If it is a string (such as '\t' or ' '), + it contains the characters used to indent at each level. + + This method produces a JSON text from a JavaScript value. + + When an object value is found, if the object contains a toJSON + method, its toJSON method will be called and the result will be + stringified. A toJSON method does not serialize: it returns the + value represented by the name/value pair that should be serialized, + or undefined if nothing should be serialized. The toJSON method + will be passed the key associated with the value, and this will be + bound to the value + + For example, this would serialize Dates as ISO strings. + + Date.prototype.toJSON = function (key) { + function f(n) { + // Format integers to have at least two digits. + return n < 10 ? '0' + n : n; + } + + return this.getUTCFullYear() + '-' + + f(this.getUTCMonth() + 1) + '-' + + f(this.getUTCDate()) + 'T' + + f(this.getUTCHours()) + ':' + + f(this.getUTCMinutes()) + ':' + + f(this.getUTCSeconds()) + 'Z'; + }; + + You can provide an optional replacer method. It will be passed the + key and value of each member, with this bound to the containing + object. The value that is returned from your method will be + serialized. If your method returns undefined, then the member will + be excluded from the serialization. + + If the replacer parameter is an array of strings, then it will be + used to select the members to be serialized. It filters the results + such that only members with keys listed in the replacer array are + stringified. + + Values that do not have JSON representations, such as undefined or + functions, will not be serialized. Such values in objects will be + dropped; in arrays they will be replaced with null. You can use + a replacer function to replace those with JSON values. + JSON.stringify(undefined) returns undefined. + + The optional space parameter produces a stringification of the + value that is filled with line breaks and indentation to make it + easier to read. + + If the space parameter is a non-empty string, then that string will + be used for indentation. If the space parameter is a number, then + the indentation will be that many spaces. + + Example: + + text = JSON.stringify(['e', {pluribus: 'unum'}]); + // text is '["e",{"pluribus":"unum"}]' + + + text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t'); + // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]' + + text = JSON.stringify([new Date()], function (key, value) { + return this[key] instanceof Date ? + 'Date(' + this[key] + ')' : value; + }); + // text is '["Date(---current time---)"]' + + + JSON.parse(text, reviver) + This method parses a JSON text to produce an object or array. + It can throw a SyntaxError exception. + + The optional reviver parameter is a function that can filter and + transform the results. It receives each of the keys and values, + and its return value is used instead of the original value. + If it returns what it received, then the structure is not modified. + If it returns undefined then the member is deleted. + + Example: + + // Parse the text. Values that look like ISO date strings will + // be converted to Date objects. + + myData = JSON.parse(text, function (key, value) { + var a; + if (typeof value === 'string') { + a = +/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value); + if (a) { + return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], + +a[5], +a[6])); + } + } + return value; + }); + + myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) { + var d; + if (typeof value === 'string' && + value.slice(0, 5) === 'Date(' && + value.slice(-1) === ')') { + d = new Date(value.slice(5, -1)); + if (d) { + return d; + } + } + return value; + }); + + + This is a reference implementation. You are free to copy, modify, or + redistribute. +*/ + +/*jslint evil: true, strict: false, regexp: false */ + +/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply, + call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, + getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, + lastIndex, length, parse, prototype, push, replace, slice, stringify, + test, toJSON, toString, valueOf +*/ + + +// Create a JSON object only if one does not already exist. We create the +// methods in a closure to avoid creating global variables. + +var JSON; +if (!JSON) { + JSON = {}; +} + +(function () { + "use strict"; + + function f(n) { + // Format integers to have at least two digits. + return n < 10 ? '0' + n : n; + } + + if (typeof Date.prototype.toJSON !== 'function') { + + Date.prototype.toJSON = function (key) { + + return isFinite(this.valueOf()) ? + this.getUTCFullYear() + '-' + + f(this.getUTCMonth() + 1) + '-' + + f(this.getUTCDate()) + 'T' + + f(this.getUTCHours()) + ':' + + f(this.getUTCMinutes()) + ':' + + f(this.getUTCSeconds()) + 'Z' : null; + }; + + String.prototype.toJSON = + Number.prototype.toJSON = + Boolean.prototype.toJSON = function (key) { + return this.valueOf(); + }; + } + + var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + gap, + indent, + meta = { // table of character substitutions + '\b': '\\b', + '\t': '\\t', + '\n': '\\n', + '\f': '\\f', + '\r': '\\r', + '"' : '\\"', + '\\': '\\\\' + }, + rep; + + + function quote(string) { + +// If the string contains no control characters, no quote characters, and no +// backslash characters, then we can safely slap some quotes around it. +// Otherwise we must also replace the offending characters with safe escape +// sequences. + + escapable.lastIndex = 0; + return escapable.test(string) ? '"' + string.replace(escapable, function (a) { + var c = meta[a]; + return typeof c === 'string' ? c : + '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }) + '"' : '"' + string + '"'; + } + + + function str(key, holder) { + +// Produce a string from holder[key]. + + var i, // The loop counter. + k, // The member key. + v, // The member value. + length, + mind = gap, + partial, + value = holder[key]; + +// If the value has a toJSON method, call it to obtain a replacement value. + + if (value && typeof value === 'object' && + typeof value.toJSON === 'function') { + value = value.toJSON(key); + } + +// If we were called with a replacer function, then call the replacer to +// obtain a replacement value. + + if (typeof rep === 'function') { + value = rep.call(holder, key, value); + } + +// What happens next depends on the value's type. + + switch (typeof value) { + case 'string': + return quote(value); + + case 'number': + +// JSON numbers must be finite. Encode non-finite numbers as null. + + return isFinite(value) ? String(value) : 'null'; + + case 'boolean': + case 'null': + +// If the value is a boolean or null, convert it to a string. Note: +// typeof null does not produce 'null'. The case is included here in +// the remote chance that this gets fixed someday. + + return String(value); + +// If the type is 'object', we might be dealing with an object or an array or +// null. + + case 'object': + +// Due to a specification blunder in ECMAScript, typeof null is 'object', +// so watch out for that case. + + if (!value) { + return 'null'; + } + +// Make an array to hold the partial results of stringifying this object value. + + gap += indent; + partial = []; + +// Is the value an array? + + if (Object.prototype.toString.apply(value) === '[object Array]') { + +// The value is an array. Stringify every element. Use null as a placeholder +// for non-JSON values. + + length = value.length; + for (i = 0; i < length; i += 1) { + partial[i] = str(i, value) || 'null'; + } + +// Join all of the elements together, separated with commas, and wrap them in +// brackets. + + v = partial.length === 0 ? '[]' : gap ? + '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' : + '[' + partial.join(',') + ']'; + gap = mind; + return v; + } + +// If the replacer is an array, use it to select the members to be stringified. + + if (rep && typeof rep === 'object') { + length = rep.length; + for (i = 0; i < length; i += 1) { + if (typeof rep[i] === 'string') { + k = rep[i]; + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } else { + +// Otherwise, iterate through all of the keys in the object. + + for (k in value) { + if (Object.prototype.hasOwnProperty.call(value, k)) { + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } + +// Join all of the member texts together, separated with commas, +// and wrap them in braces. + + v = partial.length === 0 ? '{}' : gap ? + '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' : + '{' + partial.join(',') + '}'; + gap = mind; + return v; + } + } + +// If the JSON object does not yet have a stringify method, give it one. + + if (typeof JSON.stringify !== 'function') { + JSON.stringify = function (value, replacer, space) { + +// The stringify method takes a value and an optional replacer, and an optional +// space parameter, and returns a JSON text. The replacer can be a function +// that can replace values, or an array of strings that will select the keys. +// A default replacer method can be provided. Use of the space parameter can +// produce text that is more easily readable. + + var i; + gap = ''; + indent = ''; + +// If the space parameter is a number, make an indent string containing that +// many spaces. + + if (typeof space === 'number') { + for (i = 0; i < space; i += 1) { + indent += ' '; + } + +// If the space parameter is a string, it will be used as the indent string. + + } else if (typeof space === 'string') { + indent = space; + } + +// If there is a replacer, it must be a function or an array. +// Otherwise, throw an error. + + rep = replacer; + if (replacer && typeof replacer !== 'function' && + (typeof replacer !== 'object' || + typeof replacer.length !== 'number')) { + throw new Error('JSON.stringify'); + } + +// Make a fake root object containing our value under the key of ''. +// Return the result of stringifying the value. + + return str('', {'': value}); + }; + } + + +// If the JSON object does not yet have a parse method, give it one. + + if (typeof JSON.parse !== 'function') { + JSON.parse = function (text, reviver) { + +// The parse method takes a text and an optional reviver function, and returns +// a JavaScript value if the text is a valid JSON text. + + var j; + + function walk(holder, key) { + +// The walk method is used to recursively walk the resulting structure so +// that modifications can be made. + + var k, v, value = holder[key]; + if (value && typeof value === 'object') { + for (k in value) { + if (Object.prototype.hasOwnProperty.call(value, k)) { + v = walk(value, k); + if (v !== undefined) { + value[k] = v; + } else { + delete value[k]; + } + } + } + } + return reviver.call(holder, key, value); + } + + +// Parsing happens in four stages. In the first stage, we replace certain +// Unicode characters with escape sequences. JavaScript handles many characters +// incorrectly, either silently deleting them, or treating them as line endings. + + text = String(text); + cx.lastIndex = 0; + if (cx.test(text)) { + text = text.replace(cx, function (a) { + return '\\u' + + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }); + } + +// In the second stage, we run the text against regular expressions that look +// for non-JSON patterns. We are especially concerned with '()' and 'new' +// because they can cause invocation, and '=' because it can cause mutation. +// But just to be safe, we want to reject all unexpected forms. + +// We split the second stage into 4 regexp operations in order to work around +// crippling inefficiencies in IE's and Safari's regexp engines. First we +// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we +// replace all simple value tokens with ']' characters. Third, we delete all +// open brackets that follow a colon or comma or that begin the text. Finally, +// we look to see that the remaining characters are only whitespace or ']' or +// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. + + if (/^[\],:{}\s]*$/ + .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@') + .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']') + .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { + +// In the third stage we use the eval function to compile the text into a +// JavaScript structure. The '{' operator is subject to a syntactic ambiguity +// in JavaScript: it can begin a block or an object literal. We wrap the text +// in parens to eliminate the ambiguity. + + j = eval('(' + text + ')'); + +// In the optional fourth stage, we recursively walk the new structure, passing +// each name/value pair to a reviver function for possible transformation. + + return typeof reviver === 'function' ? + walk({'': j}, '') : j; + } + +// If the text is not JSON parseable, then a SyntaxError is thrown. + + throw new SyntaxError('JSON.parse'); + }; + } +}()); diff --git a/js/lib/superfish/css/superfish-vertical.css b/js/lib/superfish/css/superfish-vertical.css new file mode 100644 index 0000000000..8025b7859f --- /dev/null +++ b/js/lib/superfish/css/superfish-vertical.css @@ -0,0 +1,23 @@ +/*** adding sf-vertical in addition to sf-menu creates a vertical menu ***/ +.sf-vertical, .sf-vertical li { + width: 10em; +} +/* this lacks ul at the start of the selector, so the styles from the main CSS file override it where needed */ +.sf-vertical li:hover ul, +.sf-vertical li.sfHover ul { + left: 10em; /* match ul width */ + top: 0; +} + +/*** alter arrow directions ***/ +.sf-vertical .sf-sub-indicator { background-position: -10px 0; } /* IE6 gets solid image only */ +.sf-vertical a > .sf-sub-indicator { background-position: 0 0; } /* use translucent arrow for modern browsers*/ + +/* hover arrow direction for modern browsers*/ +.sf-vertical a:focus > .sf-sub-indicator, +.sf-vertical a:hover > .sf-sub-indicator, +.sf-vertical a:active > .sf-sub-indicator, +.sf-vertical li:hover > a > .sf-sub-indicator, +.sf-vertical li.sfHover > a > .sf-sub-indicator { + background-position: -10px 0; /* arrow hovers for modern browsers*/ +} \ No newline at end of file diff --git a/js/lib/superfish/css/superfish.css b/js/lib/superfish/css/superfish.css new file mode 100644 index 0000000000..aa384b8b33 --- /dev/null +++ b/js/lib/superfish/css/superfish.css @@ -0,0 +1,136 @@ + +/*** ESSENTIAL STYLES ***/ +.sf-menu, .sf-menu * { + margin: 0; + padding: 0; + list-style: none; +} +.sf-menu { + line-height: 1.0; +} +.sf-menu ul { + position: absolute; + top: -999em; + width: 10em; /* left offset of submenus need to match (see below) */ +} +.sf-menu ul li { + width: 100%; +} +.sf-menu li:hover { + visibility: inherit; /* fixes IE7 'sticky bug' */ +} +.sf-menu li { + float: left; + position: relative; +} +.sf-menu a { + display: block; + position: relative; +} +.sf-menu li:hover ul, +.sf-menu li.sfHover ul { + left: 0; + top: 2.5em; /* match top ul list item height */ + z-index: 99; +} +ul.sf-menu li:hover li ul, +ul.sf-menu li.sfHover li ul { + top: -999em; +} +ul.sf-menu li li:hover ul, +ul.sf-menu li li.sfHover ul { + left: 10em; /* match ul width */ + top: 0; +} +ul.sf-menu li li:hover li ul, +ul.sf-menu li li.sfHover li ul { + top: -999em; +} +ul.sf-menu li li li:hover ul, +ul.sf-menu li li li.sfHover ul { + left: 10em; /* match ul width */ + top: 0; +} + +/*** DEMO SKIN ***/ +.sf-menu { + float: left; + margin-bottom: 1em; +} +.sf-menu a { + border-left: 1px solid #fff; + border-top: 1px solid #CFDEFF; + padding: .75em 1em; + text-decoration:none; +} +.sf-menu a, .sf-menu a:visited { /* visited pseudo selector so IE6 applies text colour*/ + color: #13a; +} +.sf-menu li { + background: #BDD2FF; +} +.sf-menu li li { + background: #AABDE6; +} +.sf-menu li li li { + background: #9AAEDB; +} +.sf-menu li:hover, .sf-menu li.sfHover, +.sf-menu a:focus, .sf-menu a:hover, .sf-menu a:active { + background: #CFDEFF; + outline: 0; +} + +/*** arrows **/ +.sf-menu a.sf-with-ul { + padding-right: 2.25em; + min-width: 1px; /* trigger IE7 hasLayout so spans position accurately */ +} +.sf-sub-indicator { + position: absolute; + display: block; + right: .75em; + top: 1.05em; /* IE6 only */ + width: 10px; + height: 10px; + text-indent: -999em; + overflow: hidden; + background: url('assets/js/lib/superfish/images/arrows-ffffff.png') no-repeat -10px -100px; /* 8-bit indexed alpha png. IE6 gets solid image only */ +} +a > .sf-sub-indicator { /* give all except IE6 the correct values */ + top: .8em; + background-position: 0 -100px; /* use translucent arrow for modern browsers*/ +} +/* apply hovers to modern browsers */ +a:focus > .sf-sub-indicator, +a:hover > .sf-sub-indicator, +a:active > .sf-sub-indicator, +li:hover > a > .sf-sub-indicator, +li.sfHover > a > .sf-sub-indicator { + background-position: -10px -100px; /* arrow hovers for modern browsers*/ +} + +/* point right for anchors in subs */ +.sf-menu ul .sf-sub-indicator { background-position: -10px 0; } +.sf-menu ul a > .sf-sub-indicator { background-position: 0 0; } +/* apply hovers to modern browsers */ +.sf-menu ul a:focus > .sf-sub-indicator, +.sf-menu ul a:hover > .sf-sub-indicator, +.sf-menu ul a:active > .sf-sub-indicator, +.sf-menu ul li:hover > a > .sf-sub-indicator, +.sf-menu ul li.sfHover > a > .sf-sub-indicator { + background-position: -10px 0; /* arrow hovers for modern browsers*/ +} + +/*** shadows for all but IE6 ***/ +.sf-shadow ul { + background: url('assets/js/lib/superfish/images/shadow.png') no-repeat bottom right; + padding: 0 8px 9px 0; + -moz-border-radius-bottomleft: 17px; + -moz-border-radius-topright: 17px; + -webkit-border-top-right-radius: 17px; + -webkit-border-bottom-left-radius: 17px; +} +.sf-shadow ul.sf-shadow-off { + background: transparent; +} diff --git a/js/lib/superfish/hoverIntent.js b/js/lib/superfish/hoverIntent.js new file mode 100644 index 0000000000..91da57b244 --- /dev/null +++ b/js/lib/superfish/hoverIntent.js @@ -0,0 +1,84 @@ +(function($){ + /* hoverIntent by Brian Cherne */ + $.fn.hoverIntent = function(f,g) { + // default configuration options + var cfg = { + sensitivity: 7, + interval: 100, + timeout: 0 + }; + // override configuration options with user supplied object + cfg = $.extend(cfg, g ? { over: f, out: g } : f ); + + // instantiate variables + // cX, cY = current X and Y position of mouse, updated by mousemove event + // pX, pY = previous X and Y position of mouse, set by mouseover and polling interval + var cX, cY, pX, pY; + + // A private function for getting mouse position + var track = function(ev) { + cX = ev.pageX; + cY = ev.pageY; + }; + + // A private function for comparing current and previous mouse position + var compare = function(ev,ob) { + ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); + // compare mouse positions to see if they've crossed the threshold + if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) { + $(ob).unbind("mousemove",track); + // set hoverIntent state to true (so mouseOut can be called) + ob.hoverIntent_s = 1; + return cfg.over.apply(ob,[ev]); + } else { + // set previous coordinates for next time + pX = cX; pY = cY; + // use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs) + ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);} , cfg.interval ); + } + }; + + // A private function for delaying the mouseOut function + var delay = function(ev,ob) { + ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); + ob.hoverIntent_s = 0; + return cfg.out.apply(ob,[ev]); + }; + + // A private function for handling mouse 'hovering' + var handleHover = function(e) { + // next three lines copied from jQuery.hover, ignore children onMouseOver/onMouseOut + var p = (e.type == "mouseover" ? e.fromElement : e.toElement) || e.relatedTarget; + while ( p && p != this ) { try { p = p.parentNode; } catch(e) { p = this; } } + if ( p == this ) { return false; } + + // copy objects to be passed into t (required for event object to be passed in IE) + var ev = jQuery.extend({},e); + var ob = this; + + // cancel hoverIntent timer if it exists + if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); } + + // else e.type == "onmouseover" + if (e.type == "mouseover") { + // set "previous" X and Y position based on initial entry point + pX = ev.pageX; pY = ev.pageY; + // update "current" X and Y position based on mousemove + $(ob).bind("mousemove",track); + // start polling interval (self-calling timeout) to compare mouse coordinates over time + if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);} , cfg.interval );} + + // else e.type == "onmouseout" + } else { + // unbind expensive mousemove event + $(ob).unbind("mousemove",track); + // if hoverIntent state is true, then call the mouseOut function after the specified delay + if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);} , cfg.timeout );} + } + }; + + // bind the function to the two event listeners + return this.mouseover(handleHover).mouseout(handleHover); + }; + +})(jQuery); \ No newline at end of file diff --git a/js/lib/superfish/images/arrows-ffffff.png b/js/lib/superfish/images/arrows-ffffff.png new file mode 100644 index 0000000000000000000000000000000000000000..995df52065bc250180081f895070ee63de05bfe7 GIT binary patch literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^B0!wS#0(^(;%-|4Ddu7)&kzm{j@u9Y9{{*+s`nvx*DV21Ml+qsS;fz%XuL>4nJa0`JjX}uDbwD2HC(*ycgt4t?ty+@+wPUlR;uUiAH4mbx%Td3O?Q*$ zf&zQmF8}g8dC^~1Y@56N`Id%svugXbOJqMzNq%PY>BN*-n!)@W7LRXkPCY$Kvh?pylS=lQEeJmx&}%I_=-`FKFUe^aWI+!LPc+s5;Ys_!vxdGhVg=U0pN)oi@O zH(|f%$AZ)c_dD2+Fh64a*igX$#11wJasvDy3=tjxDF+*z&Y+=G2RoXV5q8l~>f;U; zSXkqU26{?8VjPWfP)eX#Y8W|De&GL-eKmQ98S63@?fZFZo^AD{N4pM&9@*aVN_Vbp z^|qYI$u>urZReRrZ&O^TJg>~`(x&v&vs8m8`Pvvv*_d*2mhSJFey=A#Uy1q3A9|9{K22WQ% Jmvv4FO#s~6iZ1{F literal 0 HcmV?d00001 diff --git a/js/lib/superfish/make_superfish.js b/js/lib/superfish/make_superfish.js new file mode 100644 index 0000000000..c3955b4c25 --- /dev/null +++ b/js/lib/superfish/make_superfish.js @@ -0,0 +1,34 @@ +// convert to superfish menu + +provide('wn.menus.superfish'); +wn.menus.superfish = function(parent, data) { + var _make_list = function(myparent, lst) { + var ul = wn.dom.add(myparent, 'ul'); + $.each(lst, function(i,v) { + var li = wn.dom.add(ul, 'li') + var a = wn.dom.add(li, 'a', '', '', v.label); + a.action = v.action + + // action + if(v.action) { + a.onclick = function() { window[action](); }; + } + + // link + if(v.href) { + a.href = v.href; + } + + // sub menu + if(v.subitems) { + _make_list(li, v.subitems); + } + }) + return ul; + } + ul = _make_list(parent, data); + ul.className = 'sf-menu'; + + // build it + $(ul).superfish(); +} \ No newline at end of file diff --git a/js/lib/superfish/superfish.js b/js/lib/superfish/superfish.js new file mode 100644 index 0000000000..c6a9c7de04 --- /dev/null +++ b/js/lib/superfish/superfish.js @@ -0,0 +1,121 @@ + +/* + * Superfish v1.4.8 - jQuery menu widget + * Copyright (c) 2008 Joel Birch + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt + */ + +;(function($){ + $.fn.superfish = function(op){ + + var sf = $.fn.superfish, + c = sf.c, + $arrow = $([' »'].join('')), + over = function(){ + var $$ = $(this), menu = getMenu($$); + clearTimeout(menu.sfTimer); + $$.showSuperfishUl().siblings().hideSuperfishUl(); + }, + out = function(){ + var $$ = $(this), menu = getMenu($$), o = sf.op; + clearTimeout(menu.sfTimer); + menu.sfTimer=setTimeout(function(){ + o.retainPath=($.inArray($$[0],o.$path)>-1); + $$.hideSuperfishUl(); + if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);} + },o.delay); + }, + getMenu = function($menu){ + var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0]; + sf.op = sf.o[menu.serial]; + return menu; + }, + addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); }; + + return this.each(function() { + var s = this.serial = sf.o.length; + var o = $.extend({},sf.defaults,op); + o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){ + $(this).addClass([o.hoverClass,c.bcClass].join(' ')) + .filter('li:has(ul)').removeClass(o.pathClass); + }); + sf.o[s] = sf.op = o; + + $('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() { + if (o.autoArrows) addArrow( $('>a:first-child',this) ); + }) + .not('.'+c.bcClass) + .hideSuperfishUl(); + + var $a = $('a',this); + $a.each(function(i){ + var $li = $a.eq(i).parents('li'); + $a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);}); + }); + o.onInit.call(this); + + }).each(function() { + var menuClasses = [c.menuClass]; + if (sf.op.dropShadows && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass); + $(this).addClass(menuClasses.join(' ')); + }); + }; + + var sf = $.fn.superfish; + sf.o = []; + sf.op = {}; + sf.IE7fix = function(){ + var o = sf.op; + if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined) + this.toggleClass(sf.c.shadowClass+'-off'); + }; + sf.c = { + bcClass : 'sf-breadcrumb', + menuClass : 'sf-js-enabled', + anchorClass : 'sf-with-ul', + arrowClass : 'sf-sub-indicator', + shadowClass : 'sf-shadow' + }; + sf.defaults = { + hoverClass : 'sfHover', + pathClass : 'overideThisToUse', + pathLevels : 1, + delay : 800, + animation : {opacity:'show'}, + speed : 'normal', + autoArrows : true, + dropShadows : true, + disableHI : false, // true disables hoverIntent detection + onInit : function(){}, // callback functions + onBeforeShow: function(){}, + onShow : function(){}, + onHide : function(){} + }; + $.fn.extend({ + hideSuperfishUl : function(){ + var o = sf.op, + not = (o.retainPath===true) ? o.$path : ''; + o.retainPath = false; + var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass) + .find('>ul').hide().css('visibility','hidden'); + o.onHide.call($ul); + return this; + }, + showSuperfishUl : function(){ + var o = sf.op, + sh = sf.c.shadowClass+'-off', + $ul = this.addClass(o.hoverClass) + .find('>ul:hidden').css('visibility','visible'); + sf.IE7fix.call($ul); + o.onBeforeShow.call($ul); + $ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); o.onShow.call($ul); }); + return this; + } + }); + +})(jQuery); diff --git a/js/lib/superfish/superfish.min.js b/js/lib/superfish/superfish.min.js new file mode 100644 index 0000000000..9e2e6228f4 --- /dev/null +++ b/js/lib/superfish/superfish.min.js @@ -0,0 +1,171 @@ + +(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY)) »'].join('')),over=function(){var $$=$(this),menu=getMenu($$);clearTimeout(menu.sfTimer);$$.showSuperfishUl().siblings().hideSuperfishUl();},out=function(){var $$=$(this),menu=getMenu($$),o=sf.op;clearTimeout(menu.sfTimer);menu.sfTimer=setTimeout(function(){o.retainPath=($.inArray($$[0],o.$path)>-1);$$.hideSuperfishUl();if(o.$path.length&&$$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);}},o.delay);},getMenu=function($menu){var menu=$menu.parents(['ul.',c.menuClass,':first'].join(''))[0];sf.op=sf.o[menu.serial];return menu;},addArrow=function($a){$a.addClass(c.anchorClass).append($arrow.clone());};return this.each(function(){var s=this.serial=sf.o.length;var o=$.extend({},sf.defaults,op);o.$path=$('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){$(this).addClass([o.hoverClass,c.bcClass].join(' ')).filter('li:has(ul)').removeClass(o.pathClass);});sf.o[s]=sf.op=o;$('li:has(ul)',this)[($.fn.hoverIntent&&!o.disableHI)?'hoverIntent':'hover'](over,out).each(function(){if(o.autoArrows)addArrow($('>a:first-child',this));}).not('.'+c.bcClass).hideSuperfishUl();var $a=$('a',this);$a.each(function(i){var $li=$a.eq(i).parents('li');$a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});});o.onInit.call(this);}).each(function(){var menuClasses=[c.menuClass];if(sf.op.dropShadows&&!($.browser.msie&&$.browser.version<7))menuClasses.push(c.shadowClass);$(this).addClass(menuClasses.join(' '));});};var sf=$.fn.superfish;sf.o=[];sf.op={};sf.IE7fix=function(){var o=sf.op;if($.browser.msie&&$.browser.version>6&&o.dropShadows&&o.animation.opacity!=undefined) +this.toggleClass(sf.c.shadowClass+'-off');};sf.c={bcClass:'sf-breadcrumb',menuClass:'sf-js-enabled',anchorClass:'sf-with-ul',arrowClass:'sf-sub-indicator',shadowClass:'sf-shadow'};sf.defaults={hoverClass:'sfHover',pathClass:'overideThisToUse',pathLevels:1,delay:800,animation:{opacity:'show'},speed:'normal',autoArrows:true,dropShadows:true,disableHI:false,onInit:function(){},onBeforeShow:function(){},onShow:function(){},onHide:function(){}};$.fn.extend({hideSuperfishUl:function(){var o=sf.op,not=(o.retainPath===true)?o.$path:'';o.retainPath=false;var $ul=$(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass).find('>ul').hide().css('visibility','hidden');o.onHide.call($ul);return this;},showSuperfishUl:function(){var o=sf.op,sh=sf.c.shadowClass+'-off',$ul=this.addClass(o.hoverClass).find('>ul:hidden').css('visibility','visible');sf.IE7fix.call($ul);o.onBeforeShow.call($ul);$ul.animate(o.animation,o.speed,function(){sf.IE7fix.call($ul);o.onShow.call($ul);});return this;}});})(jQuery);provide('wn.menus.superfish');wn.menus.superfish=function(parent,data){var _make_list=function(myparent,lst){var ul=wn.dom.add(myparent,'ul');$.each(lst,function(i,v){var li=wn.dom.add(ul,'li') +var a=wn.dom.add(li,'a','','',v.label);a.action=v.action +if(v.action){a.onclick=function(){window[action]();};} +if(v.href){a.href=v.href;} +if(v.subitems){_make_list(li,v.subitems);}}) +return ul;} +ul=_make_list(parent,data);ul.className='sf-menu';$(ul).superfish();} +wn.assets.handler.css('\ +/*** ESSENTIAL STYLES ***/\ +.sf-menu, .sf-menu * {\ + margin: 0;\ + padding: 0;\ + list-style: none;\ +}\ +.sf-menu {\ + line-height: 1.0;\ +}\ +.sf-menu ul {\ + position: absolute;\ + top: -999em;\ + width: 10em; /* left offset of submenus need to match (see below) */\ +}\ +.sf-menu ul li {\ + width: 100%;\ +}\ +.sf-menu li:hover {\ + visibility: inherit; /* fixes IE7 \'sticky bug\' */\ +}\ +.sf-menu li {\ + float: left;\ + position: relative;\ +}\ +.sf-menu a {\ + display: block;\ + position: relative;\ +}\ +.sf-menu li:hover ul,\ +.sf-menu li.sfHover ul {\ + left: 0;\ + top: 2.5em; /* match top ul list item height */\ + z-index: 99;\ +}\ +ul.sf-menu li:hover li ul,\ +ul.sf-menu li.sfHover li ul {\ + top: -999em;\ +}\ +ul.sf-menu li li:hover ul,\ +ul.sf-menu li li.sfHover ul {\ + left: 10em; /* match ul width */\ + top: 0;\ +}\ +ul.sf-menu li li:hover li ul,\ +ul.sf-menu li li.sfHover li ul {\ + top: -999em;\ +}\ +ul.sf-menu li li li:hover ul,\ +ul.sf-menu li li li.sfHover ul {\ + left: 10em; /* match ul width */\ + top: 0;\ +}\ +\ +/*** DEMO SKIN ***/\ +.sf-menu {\ + float: left;\ + margin-bottom: 1em;\ +}\ +.sf-menu a {\ + border-left: 1px solid #fff;\ + border-top: 1px solid #CFDEFF;\ + padding: .75em 1em;\ + text-decoration:none;\ +}\ +.sf-menu a, .sf-menu a:visited { /* visited pseudo selector so IE6 applies text colour*/\ + color: #13a;\ +}\ +.sf-menu li {\ + background: #BDD2FF;\ +}\ +.sf-menu li li {\ + background: #AABDE6;\ +}\ +.sf-menu li li li {\ + background: #9AAEDB;\ +}\ +.sf-menu li:hover, .sf-menu li.sfHover,\ +.sf-menu a:focus, .sf-menu a:hover, .sf-menu a:active {\ + background: #CFDEFF;\ + outline: 0;\ +}\ +\ +/*** arrows **/\ +.sf-menu a.sf-with-ul {\ + padding-right: 2.25em;\ + min-width: 1px; /* trigger IE7 hasLayout so spans position accurately */\ +}\ +.sf-sub-indicator {\ + position: absolute;\ + display: block;\ + right: .75em;\ + top: 1.05em; /* IE6 only */\ + width: 10px;\ + height: 10px;\ + text-indent: -999em;\ + overflow: hidden;\ + background: url(\'assets/js/lib/superfish/images/arrows-ffffff.png\') no-repeat -10px -100px; /* 8-bit indexed alpha png. IE6 gets solid image only */\ +}\ +a > .sf-sub-indicator { /* give all except IE6 the correct values */\ + top: .8em;\ + background-position: 0 -100px; /* use translucent arrow for modern browsers*/\ +}\ +/* apply hovers to modern browsers */\ +a:focus > .sf-sub-indicator,\ +a:hover > .sf-sub-indicator,\ +a:active > .sf-sub-indicator,\ +li:hover > a > .sf-sub-indicator,\ +li.sfHover > a > .sf-sub-indicator {\ + background-position: -10px -100px; /* arrow hovers for modern browsers*/\ +}\ +\ +/* point right for anchors in subs */\ +.sf-menu ul .sf-sub-indicator { background-position: -10px 0; }\ +.sf-menu ul a > .sf-sub-indicator { background-position: 0 0; }\ +/* apply hovers to modern browsers */\ +.sf-menu ul a:focus > .sf-sub-indicator,\ +.sf-menu ul a:hover > .sf-sub-indicator,\ +.sf-menu ul a:active > .sf-sub-indicator,\ +.sf-menu ul li:hover > a > .sf-sub-indicator,\ +.sf-menu ul li.sfHover > a > .sf-sub-indicator {\ + background-position: -10px 0; /* arrow hovers for modern browsers*/\ +}\ +\ +/*** shadows for all but IE6 ***/\ +.sf-shadow ul {\ + background: url(\'assets/js/lib/superfish/images/shadow.png\') no-repeat bottom right;\ + padding: 0 8px 9px 0;\ + -moz-border-radius-bottomleft: 17px;\ + -moz-border-radius-topright: 17px;\ + -webkit-border-top-right-radius: 17px;\ + -webkit-border-bottom-left-radius: 17px;\ +}\ +.sf-shadow ul.sf-shadow-off {\ + background: transparent;\ +}\ +');wn.assets.handler.css('/*** adding sf-vertical in addition to sf-menu creates a vertical menu ***/\ +.sf-vertical, .sf-vertical li {\ + width: 10em;\ +}\ +/* this lacks ul at the start of the selector, so the styles from the main CSS file override it where needed */\ +.sf-vertical li:hover ul,\ +.sf-vertical li.sfHover ul {\ + left: 10em; /* match ul width */\ + top: 0;\ +}\ +\ +/*** alter arrow directions ***/\ +.sf-vertical .sf-sub-indicator { background-position: -10px 0; } /* IE6 gets solid image only */\ +.sf-vertical a > .sf-sub-indicator { background-position: 0 0; } /* use translucent arrow for modern browsers*/\ +\ +/* hover arrow direction for modern browsers*/\ +.sf-vertical a:focus > .sf-sub-indicator,\ +.sf-vertical a:hover > .sf-sub-indicator,\ +.sf-vertical a:active > .sf-sub-indicator,\ +.sf-vertical li:hover > a > .sf-sub-indicator,\ +.sf-vertical li.sfHover > a > .sf-sub-indicator {\ + background-position: -10px 0; /* arrow hovers for modern browsers*/\ +}'); \ No newline at end of file diff --git a/js/wn/assets.js b/js/wn/assets.js new file mode 100644 index 0000000000..881deb9072 --- /dev/null +++ b/js/wn/assets.js @@ -0,0 +1,94 @@ +// library to mange assets (js, css, models, html) etc in the app. +// will try and get from localStorge if latest are available +// or will load them via xmlhttp +// depends on asset_timestamps_ loaded via boot + +wn.assets = { + // keep track of executed assets + executed_ : {}, + + // check if the asset exists in + // localstorage and if the timestamp + // matches with the loaded timestamp + exists: function(src) { + if('localStorage' in window + && localStorage.getItem(src) + && localStorage.getItem('[ts] '+src) == asset_timestamps_[src]) + return true + }, + + // add the asset to + // localstorage + add: function(src, txt) { + if('localStorage' in window) { + localStorage.setItem(src, txt); + localStorage.setItem('[ts] ' + src, asset_timestamps_[src]); + } + }, + + get: function(src) { + return localStorage.getItem(src); + }, + + extn: function(src) { + return src.split('.').slice(-1)[0]; + }, + + html_src: function(src) { + if(src.indexOf('/')!=-1) { + var t = src.split('/').slice(0,-1); + t.push('src'); + t = t.join('/') +'/' + a.split('/').slice(-1)[0]; + } else { + var t = 'src/' + src; + } + return t; + }, + + // load an asset via + // xmlhttp + load: function(src) { + var t = wn.assets.extn(src)=='html' ? wn.assets.html_src(src) : src; + + wn.xmlhttp.get(t, function(txt) { + // add it to localstorage + wn.assets.add(src, txt); + }, false) + }, + + // pass on to the handler to set + execute: function(src) { + if(!wn.assets.exists(src)) { + wn.assets.load(src); + } + var type = wn.assets.extn(src); + if(wn.assets.handler[type]) { + wn.assets.handler[type](wn.assets.get(src), src); + wn.assets.executed_[src] = 1; + } + }, + + // handle types of assets + // and launch them in the + // app + handler: { + js: function(txt, src) { + wn.dom.eval(txt); + }, + css: function(txt, src) { + var se = document.createElement('style'); + se.type = "text/css"; + if (se.styleSheet) { + se.styleSheet.cssText = txt; + } else { + se.appendChild(document.createTextNode(txt)); + } + document.getElementsByTagName('head')[0].appendChild(se); + }, + html: function(txt, src) { + // make the html content page + var page = wn.dom.add($('.outer .inner').get(0), 'div', 'content', null, txt); + page.setAttribute("_src", src); + } + } +} diff --git a/js/wn/dom.js b/js/wn/dom.js new file mode 100644 index 0000000000..426cc04968 --- /dev/null +++ b/js/wn/dom.js @@ -0,0 +1,49 @@ +// add a new dom element +wn.provide('wn.dom'); + +wn.dom.by_id = function(id) { + return document.getElementById(id); +} + +wn.dom.eval = function(txt) { + var el = document.createElement('script'); + el.appendChild(document.createTextNode(txt)); + // execute the script globally + document.getElementsByTagName('head')[0].appendChild(el); +} + +wn.dom.add = function(parent, newtag, className, cs, innerHTML, onclick) { + if(parent && parent.substr)parent = wn.dom.by_id(parent); + var c = document.createElement(newtag); + if(parent) + parent.appendChild(c); + + // if image, 3rd parameter is source + if(className) { + if(newtag.toLowerCase()=='img') + c.src = className + else + c.className = className; + } + if(cs) wn.dom.css(c,cs); + if(innerHTML) c.innerHTML = innerHTML; + if(onclick) c.onclick = onclick; + return c; +} + +// add css to element +wn.dom.css= function(ele, s) { + if(ele && s) { + for(var i in s) ele.style[i]=s[i]; + }; + return ele; +} + +wn.dom.hide = function(ele) { + ele.style.display = 'none'; +} + +wn.dom.show = function(ele, value) { + if(!value) value = 'block'; + ele.style.display = value; +} diff --git a/js/wn/history.js b/js/wn/history.js new file mode 100644 index 0000000000..15574e7f46 --- /dev/null +++ b/js/wn/history.js @@ -0,0 +1,15 @@ +// manage history +// load pages via ajax +// setup the history adapter +// if settings no_history is set, no history will be bound +// this can be used to make it work with legacy + +$(document).bind('ready', function() { + if(wn.settings.no_history) return; + History.Adapter.bind(window,'statechange',function() { + var state = History.getState(); + + // load the state on the browser + wn.page.set(state.hash, state.title); + }); +}) diff --git a/js/wn/page.js b/js/wn/page.js new file mode 100644 index 0000000000..e9f7d55058 --- /dev/null +++ b/js/wn/page.js @@ -0,0 +1,28 @@ +wn.page = { + set: function(src) { + var new_selection = $('.inner div.content[_src="'+ src +'"]'); + if(!new_selection.length) { + // get from server / localstorage + wn.assets.execute(src); + new_selection = $('.inner div.content[_src="'+ src +'"]'); + } + + // hide current + $('.inner .current_page').removeClass('current_page'); + + // show new + new_selection.addClass('current_page'); + + // get title (the first h1, h2, h3) + var title = $('nav ul li a[href*="' + src + '"]').attr('title') || 'No Title' + + // replace state (to url) + state = History.getState(); + if(state.hash!=src) { + History.replaceState(null, title, src); + } + else { + document.title = title; + } + } +} \ No newline at end of file diff --git a/js/wn/provide.js b/js/wn/provide.js new file mode 100644 index 0000000000..99f03c020d --- /dev/null +++ b/js/wn/provide.js @@ -0,0 +1,17 @@ +// provide a namespace +wn = {} +wn.provide = function(namespace) { + var nsl = namespace.split('.'); + var l = nsl.length; + var parent = window; + for(var i=0; i %s' % outfile + 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) + + def make(self, path): + """ + Build (stitch + compress) the file defined in build.json + """ + import os, sys, json + from build import no_minify + + # open the build.json file and read + # the dict + bfile = open(os.path.join(path, 'build.json'), 'r') + bdata = json.loads(bfile.read()) + bfile.close() + + for outfile in bdata: + prefix, fname = False, outfile + + # check if there is a prefix + if ':' in outfile: + prefix, fname = outfile.split(':') + + # build the file list relative to the main folder + fl = [os.path.relpath(os.path.join(path, f), os.curdir) for f in bdata[outfile]] + + self.timestamps.bundled += fl + + if self.changed(fl): + # js files are minified by default unless explicitly + # mentioned in the prefix. + # some files may not work if minified (known jsmin bug) + + if fname.split('.')[-1]=='js' and prefix!='concat' and not no_minify: + self.minify(fl, os.path.relpath(os.path.join(path, fname), os.curdir)) + else: + self.concat(fl, os.path.relpath(os.path.join(path, fname), os.curdir)) + + def bundle(self, timestamps): + """ + Build js files from "build.json" + """ + import os + self.timestamps = timestamps + + # walk the parent folder and build all files as defined in the build.json files + for wt in os.walk('.', followlinks=True): + if 'build.json' in wt[2]: + # found build file + self.make(os.path.abspath(wt[0])) + diff --git a/py/build/markdown2_extn.py b/py/build/markdown2_extn.py new file mode 100644 index 0000000000..79d906ef87 --- /dev/null +++ b/py/build/markdown2_extn.py @@ -0,0 +1,34 @@ +""" + Jinja2 markdown2 extension + by Silas Swell + http://www.silassewell.com/blog/2010/05/10/jinja2-markdown-extension/ +""" + +import jinja2 +import jinja2.ext +import markdown2 + +class Markdown2Extension(jinja2.ext.Extension): + tags = set(['markdown2']) + + def __init__(self, environment): + super(Markdown2Extension, self).__init__(environment) + environment.extend( + markdowner=markdown2.Markdown() + ) + + def parse(self, parser): + lineno = parser.stream.next().lineno + body = parser.parse_statements( + ['name:endmarkdown2'], + drop_needle=True + ) + return jinja2.nodes.CallBlock( + self.call_method('_markdown_support'), + [], + [], + body + ).set_lineno(lineno) + + def _markdown_support(self, caller): + return self.environment.markdowner.convert(caller()).strip() \ No newline at end of file diff --git a/py/build/minify.py b/py/build/minify.py new file mode 100644 index 0000000000..3926a6c57a --- /dev/null +++ b/py/build/minify.py @@ -0,0 +1,215 @@ + + +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() \ No newline at end of file diff --git a/py/build/nav.py b/py/build/nav.py new file mode 100644 index 0000000000..9cfb76671c --- /dev/null +++ b/py/build/nav.py @@ -0,0 +1,67 @@ +class Nav: + """ + Build sitemap / navigation tree + """ + page_info_template = { + 'description': None, + 'keywords': None, + 'title': 'No Title Set' + } + def __init__(self): + """ + write out the nav + """ + import json, os + + self.data = {} + if os.path.exists('config/sitenav.json'): + nfile = open('config/sitenav.json') + self.data = json.loads(nfile.read()) + nfile.close() + + def page_info(self): + """ + return dict with href as the key + """ + ret = {} + import copy + + ul = copy.deepcopy(self.data) + + for li in ul: + ret[li.get('href')] = li + + # has subitems, loop + if li.get('subitems'): + for lia in li.get('subitems'): + if not lia.get('href') in ret.keys(): + ul.append(lia) + + return ret + + def html(self, list_class=''): + """ + return nested lists
    in html + """ + self.list_class = list_class + return self.make_list(self.data) + + def make_list(self, ul): + """ + return a list with
  • and elements + """ + lis = [] + link_html = '%(label)s' + + for li in ul: + if not 'title' in li: + li['title'] = 'No Title' + + if 'subitems' in li: + h = ('\t
  • ' + link_html + self.make_list(li['subitems']) +'
  • ') % li + else: + h = ('\t
  • ' + link_html + '
  • ') % li + + lis.append(h) + + return '\n
      \n%s\n
    ' % (self.list_class, '\n'.join(lis)) \ No newline at end of file diff --git a/py/build/project.py b/py/build/project.py new file mode 100644 index 0000000000..2ffa393f9c --- /dev/null +++ b/py/build/project.py @@ -0,0 +1,83 @@ +verbose = False + +class Project: + """ + Build a project + Make files:: + + index.html + assets/template.html + assets/js/core.min.js + assets/timestamps.json + """ + def __init__(self,): + """ + load libraries + """ + from build.timestamps import Timestamps + from build.bundle import Bundle + from nav import Nav + + self.timestamps = Timestamps() + self.bundle = Bundle() + self.nav = Nav() + + def boot(self): + """ + returns bootstrap js + """ + import json + + corejs = open('lib/js/core.min.js', 'r') + + boot = 'var asset_timestamps_=' + self.timestamps.get('json', ('js', 'html', 'css')) \ + + '\n' + corejs.read() + + corejs.close() + return boot + + def render_templates(self): + """ + Generate static files from templates + """ + + # render templates + import os + from jinja2 import Environment, FileSystemLoader + from build.markdown2_extn import Markdown2Extension + + env = Environment(loader=FileSystemLoader('templates'), extensions=[Markdown2Extension]) + + # dynamic boot info + env.globals['boot'] = self.boot() + env.globals['nav'] = self.nav.html() + page_info = self.nav.page_info() + + for wt in os.walk('templates'): + for fname in wt[2]: + if fname.split('.')[-1]=='html' and not fname.startswith('template'): + fpath = os.path.relpath(os.path.join(wt[0], fname), 'templates') + temp = env.get_template(fpath) + + env.globals.update(self.nav.page_info_template) + env.globals.update(page_info.get(fpath, {})) + + # out file in parent folder of template + f = open(fpath, 'w') + f.write(temp.render()) + f.close() + print "Rendered %s | %.2fkb" % (fpath, os.path.getsize(fpath) / 1024.0) + + + def build(self): + """ + Build all js files, timestamps.js, index.html and template.html + """ + + # make bundles + self.bundle.bundle(self.timestamps) + + # index, template if framework is dirty + if self.timestamps.dirty: + self.render_templates() + self.timestamps.write() \ No newline at end of file diff --git a/py/build/timestamps.py b/py/build/timestamps.py new file mode 100644 index 0000000000..2a1b45e4e0 --- /dev/null +++ b/py/build/timestamps.py @@ -0,0 +1,147 @@ +class Timestamps: + """ + Build / manage json timestamp files + """ + previous = {} + dirty = [] + bundled = [] + current = {} + ignore_hidden = True + ignore_extn = ('pyc', 'DS_Store', 'gitignore') + """ + load timestamps and dirty files + """ + def __init__(self): + self.load() + self.get_current() + self.check_dirty() + + def check_dirty(self): + """ + Returns true if the current folder is dirty + """ + from build import verbose + + import os + self.dirty = [] + + if not self.previous: + if verbose: + print 'Dirty: no timestamps!' + self.dirty = self.current.keys() + else: + # check both ways for missing files + + for f in self.current: + if self.current[f] != self.previous.get(f): + print '**** %s changed | %s -> %s' % (f, self.previous.get(f), self.current.get(f)) + self.dirty.append(f) + + for f in self.previous: + if self.previous[f] != self.current.get(f): + if f not in self.dirty: + print '**** %s changed | %s -> %s' % (f, self.previous.get(f), self.current.get(f)) + self.dirty.append(f) + + # unique + self.dirty = list(set(self.dirty)) + + def get_current(self): + """ + build timestamps dict for specified files + """ + try: + import config.assets + except ImportError: + return self.get_current_from_folders() + + ts = {} + for fname in config.assets.file_list: + ts[fname] = str(int(os.stat(fname).st_mtime)) + + self.current = ts + + + def get_current_from_folders(self): + """ + walk in all folders and build tree of all js, css, html, md files + """ + import os + ts = {} + + # walk the parent folder and build all files as defined in the build.json files + for wt in os.walk('.', followlinks=True): + # build timestamps + if self.ignore_hidden: + for d in wt[1]: + if d.startswith('.'): + wt[1].remove(d) + if os.path.exists(os.path.join(wt[0], d, '.no_timestamps')): + wt[1].remove(d) + + for f in wt[2]: + if f.split('.')[-1] not in self.ignore_extn and f!='_timestamps.js': + fname = os.path.relpath(os.path.join(wt[0], f), os.curdir) + ts[fname] = str(int(os.stat(fname).st_mtime)) + + self.current = ts + + + def write(self): + """ + Write timestamp if dirty + """ + import json, os + + ts_path = 'config/_timestamps.js' + + # write timestamps + f = open(ts_path, 'w') + self.get_current() + f.write(json.dumps(self.current)) + f.close() + + def load(self): + """ + Get all timestamps from file + """ + from build import verbose + import json, os + + ts_path = os.path.join('config', '_timestamps.js') + if os.path.exists(ts_path): + ts = open(ts_path, 'r') + # merge the timestamps + tmp = json.loads(ts.read()) + ts.close() + else: + if verbose: + print "** No timestamps **" + tmp = {} + + self.previous = tmp + + def update(self, fname): + """ + Update timestamp of the given file and add to dirty + """ + import os + self.current[fname] = str(int(os.stat(fname).st_mtime)) + self.dirty.append(fname) + + def get(self, rettype='dict', types=[]): + """ + return timestamps (ignore the ones not wanted) + """ + # remove all .md timestamps + ret = {} + for t in self.current: + if t.split('.')[-1] in types: + if t not in self.bundled: + ret[t] = self.current[t] + + if rettype=='dict': + return ret + else: + import json + return json.dumps(ret) \ No newline at end of file diff --git a/py/common.py b/py/common.py new file mode 100644 index 0000000000..fad04f7c29 --- /dev/null +++ b/py/common.py @@ -0,0 +1,13 @@ +_store=None + +def store(): + """ + Return the redis datastore + """ + import redis + global _store + + if not _store: + _store = redis.Redis('localhost', port=6379, db=0) + + return _store diff --git a/py/core/.no_timestamps b/py/core/.no_timestamps new file mode 100644 index 0000000000..e69de29bb2 diff --git a/py/tests.py b/py/tests.py new file mode 100644 index 0000000000..919278e407 --- /dev/null +++ b/py/tests.py @@ -0,0 +1,12 @@ +import unittest +import urllib, urllib2, os + +class TestREST(unittest.TestCase): + def test_home(self): + req = urllib2.Request('http://localhost/rmehta/wnframework-client/') + req.get_method = lambda: 'GET' + response = urllib2.urlopen(req) + self.assertTrue(response.getcode()==200) + +if __name__=='__main__': + unittest.main() \ No newline at end of file diff --git a/py/watch.py b/py/watch.py new file mode 100644 index 0000000000..0430e08ba2 --- /dev/null +++ b/py/watch.py @@ -0,0 +1,11 @@ +""" +Watch the folder at regular intervals and build if files have been changed +""" + +if __name__=='__main__': + import time, build + + while 1: + build.run() + time.sleep(2) + diff --git a/py/webnotes/.no_timestamps b/py/webnotes/.no_timestamps new file mode 100644 index 0000000000..e69de29bb2 From 579041bb949978207d26706c5d36c37e280cf079 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Thu, 8 Sep 2011 14:17:12 +0530 Subject: [PATCH 06/26] fixes to history, and added redirection on explicit sid --- attribution.md | 6 +- css/ui/overlay.css | 2 +- js/core.js | 8 +- js/core.min.js | 4 +- js/legacy/app.js | 4 +- js/legacy/form.compressed.js | 2 +- js/legacy/report.compressed.js | 25 +-- js/legacy/tiny_mce_33/.no_timpestamps | 0 js/legacy/webpage/history.js | 11 +- js/legacy/webpage/loaders.js | 10 +- js/legacy/widgets/menu.js | 5 - js/legacy/wnf.compressed.js | 21 ++- js/lib/history/history.adapter.jquery.js | 1 - js/lib/history/history.html4.js | 1 - js/lib/history/history.js | 1 - js/lib/history/history.min.js | 27 +-- js/wn/history.js | 15 -- js/wn/page.js | 6 +- py/webnotes/widgets/page_body.py | 206 +---------------------- 19 files changed, 57 insertions(+), 298 deletions(-) create mode 100644 js/legacy/tiny_mce_33/.no_timpestamps delete mode 100644 js/lib/history/history.adapter.jquery.js delete mode 100644 js/lib/history/history.html4.js delete mode 100644 js/lib/history/history.js delete mode 100644 js/wn/history.js diff --git a/attribution.md b/attribution.md index 0be7c628f4..9f88235b44 100644 --- a/attribution.md +++ b/attribution.md @@ -14,13 +14,11 @@ Following libraries have been used in wnframework - JSON2 - JQuery - JQPlot -- History +- [History](http://benalman.com/projects/jquery-hashchange-plugin/) - Suckerfish (menu) ## CSS - Skeleton CSS: -- CSS3 Overlay: - [https://github.com/LearnBoost/CSS3-Overlay/](https://github.com/LearnBoost/CSS3-Overlay/) - [http://blog.learnboost.com/blog/a-css3-overlay-system/](http://blog.learnboost.com/blog/a-css3-overlay-system/) +- [CSS3 Overlay](https://github.com/LearnBoost/CSS3-Overlay/) diff --git a/css/ui/overlay.css b/css/ui/overlay.css index 47daaca95f..445deec8bd 100644 --- a/css/ui/overlay.css +++ b/css/ui/overlay.css @@ -23,7 +23,7 @@ body.overlaid div.overlay { height: 100%; top: 0; left: 0; - background: rgba(0,0,0,0.6); + background: rgba(0,0,0,0.4); -webkit-user-select: auto; -moz-user-select: auto; diff --git a/js/core.js b/js/core.js index bb1d7c5204..71c08ceb57 100644 --- a/js/core.js +++ b/js/core.js @@ -1,11 +1,7 @@ // load all critical libraries wn.require("lib/js/lib/jquery.min.js"); -//wn.require("lib/js/lib/history/history.min.js"); -wn.require("lib/js/lib/history/history.adapter.jquery.js"); -wn.require("lib/js/lib/history/history.js"); -wn.require("lib/js/lib/history/history.html4.js"); -wn.require("lib/js/wn/history.js"); +wn.require("lib/js/lib/history/history.min.js"); /* overload links for ajax pages */ $(document).bind('ready', function() { @@ -26,7 +22,7 @@ $(document).bind('ready', function() { }); // go to hash page if exists - if(window.location.hash) { + if(!wn.settings.no_history && window.location.hash) { wn.page.set(window.location.hash.substr(1)); } diff --git a/js/core.min.js b/js/core.min.js index c246569965..c4d8dc0d3e 100644 --- a/js/core.min.js +++ b/js/core.min.js @@ -26,7 +26,7 @@ wn.dom.hide=function(ele){ele.style.display='none';} wn.dom.show=function(ele,value){if(!value)value='block';ele.style.display=value;} wn.page={set:function(src){var new_selection=$('.inner div.content[_src="'+src+'"]');if(!new_selection.length){wn.assets.execute(src);new_selection=$('.inner div.content[_src="'+src+'"]');} $('.inner .current_page').removeClass('current_page');new_selection.addClass('current_page');var title=$('nav ul li a[href*="'+src+'"]').attr('title')||'No Title' -state=History.getState();if(state.hash!=src){History.replaceState(null,title,src);} +state=window.location.hash;if(state!=src){window.location.hash=state;} else{document.title=title;}}} var JSON;if(!JSON){JSON={};} (function(){"use strict";function f(n){return n<10?'0'+n:n;} @@ -52,4 +52,4 @@ return reviver.call(holder,key,value);} text=String(text);cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return'\\u'+ ('0000'+a.charCodeAt(0).toString(16)).slice(-4);});} if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,''))){j=eval('('+text+')');return typeof reviver==='function'?walk({'':j},''):j;} -throw new SyntaxError('JSON.parse');};}}());wn.require("lib/js/lib/jquery.min.js");wn.require("lib/js/lib/history/history.adapter.jquery.js");wn.require("lib/js/lib/history/history.js");wn.require("lib/js/lib/history/history.html4.js");wn.require("lib/js/wn/history.js");$(document).bind('ready',function(){var base=window.location.href.split('#')[0];$.each($('a[softlink!="false"]'),function(i,v){if(v.href.substr(0,base.length)==base){var path=(v.href.substr(base.length));if(path.substr(0,1)!='#'){v.href=base+'#'+path;}}});if(window.location.hash){wn.page.set(window.location.hash.substr(1));}}); \ No newline at end of file +throw new SyntaxError('JSON.parse');};}}());wn.require("lib/js/lib/jquery.min.js");wn.require("lib/js/lib/history/history.min.js");$(document).bind('ready',function(){var base=window.location.href.split('#')[0];$.each($('a[softlink!="false"]'),function(i,v){if(v.href.substr(0,base.length)==base){var path=(v.href.substr(base.length));if(path.substr(0,1)!='#'){v.href=base+'#'+path;}}});if(!wn.settings.no_history&&window.location.hash){wn.page.set(window.location.hash.substr(1));}}); \ No newline at end of file diff --git a/js/legacy/app.js b/js/legacy/app.js index a86334dc70..bc5c96fd75 100644 --- a/js/legacy/app.js +++ b/js/legacy/app.js @@ -206,8 +206,8 @@ get_window_height = function() { // setup space holder setup_space_holder = function() { // space holder div - var space_holder_div = $a(null,'div','space_holder'); - space_holder_div.innerHTML = 'Loading...' + window.space_holder_div = $a(null,'div','space_holder'); + window.space_holder_div.innerHTML = 'Loading...' } startup_list.push(setup_space_holder); diff --git a/js/legacy/form.compressed.js b/js/legacy/form.compressed.js index 643722f40f..ae43448cdd 100644 --- a/js/legacy/form.compressed.js +++ b/js/legacy/form.compressed.js @@ -499,4 +499,4 @@ wn.widgets.form.file_upload_done=function(doctype,docname,fileid,filename,at_id, fl.push(filename+','+fileid) doc.file_list=fl.join('\n');} else -doc.file_list=filename+','+fileid;doc.modified=new_timestamp;var frm=frms[doctype];frm.attachments.dialog.hide();msgprint('File Uploaded Sucessfully.');frm.refresh();} +doc.file_list=filename+','+fileid;doc.modified=new_timestamp;var frm=frms[doctype];frm.attachments.dialog.hide();msgprint('File Uploaded Sucessfully.');frm.refresh();} \ No newline at end of file diff --git a/js/legacy/report.compressed.js b/js/legacy/report.compressed.js index 9698171064..7a65b38325 100644 --- a/js/legacy/report.compressed.js +++ b/js/legacy/report.compressed.js @@ -1,27 +1,4 @@ -GraphViewer=function(parent,w,h){this.show_labels=true;this.font_size=10;if(!parent){this.wrapper=document.createElement('div') -parent=this.wrapper} -this.body=$a(parent,'div','gr_body');if(w&&h){$w(this.body,w+'px');$w(this.body,h+'px');} -this._y_name=$a(parent,'div','gr_y_name');this._x_name=$a(parent,'div','gr_x_name');this._y_labels=$a(parent,'div','gr_y_labels');this._x_labels=$a(parent,'div','gr_x_labels');this.legend_area=$a(parent,'div','gr_legend_area');this.title_area=$a(parent,'div','gr_title_area');this.main_area=$a(parent,'div','gr_main_area');this.set_horizontal();} -GraphViewer.prototype.clear=function(){this.series=[];this.xlabels=[];this.xtitle=null;this.ytitle=null;} -GraphViewer.prototype.set_vertical=function(){this.k_barwidth='width';this.k_barstart='left';this.k_barlength='height';this.k_barbase='bottom';this.k_bartop='top';this.k_gridborder='borderTop';this.y_name=this._y_name;this.x_name=this._x_name;this.y_labels=this._y_labels;this.x_labels=this._x_labels;this.vertical=true;} -GraphViewer.prototype.set_horizontal=function(){this.k_barwidth='height';this.k_barstart='top';this.k_barlength='width';this.k_barbase='left';this.k_bartop='right';this.k_gridborder='borderRight';this.y_name=this._x_name;this.x_name=this._y_name;this.y_labels=this._x_labels;this.x_labels=this._y_labels;this.vertical=false;} -GraphViewer.prototype.set_title=function(t){this.title_area.innerHTML=t;} -GraphViewer.prototype.add_series=function(label,color,values,borderColor){var s=new GraphViewer.GraphSeries(this,label);s.color=color;s.borderColor=borderColor;s.data=values;this.series[this.series.length]=s;} -GraphViewer.prototype.refresh=function(){this.legend_area.innerHTML='';this.main_area.innerHTML='';this.x_labels.innerHTML='';this.y_labels.innerHTML='';this.x_name.innerHTML='';this.y_name.innerHTML='';var maxx=null;var legendheight=12;for(i=0;imaxx)maxx=series_max;var tmp=$a(this.legend_area,'div','gr_legend');tmp.style.backgroundColor=this.series[i].color;if(this.series[i].borderColor) -tmp.style.border='1px solid '+this.series[i].borderColor;tmp.style.top=(i*(legendheight+2))+'px';tmp.style.height=legendheight+'px';var tmp1=$a(this.legend_area,'div','gr_legend');tmp1.style.top=(i*(legendheight+2))+'px';tmp1.style.left='30px';$w(tmp1,'80px');tmp1.innerHTML=this.series[i].name;} -if(maxx==0)maxx=1;this.maxx=1.1*maxx;var xfn=fmt_money;if(maxx>1){var nchars=(cint(maxx)+'').length;var gstep=Math.pow(10,(nchars-1));while(flt(maxx/gstep)<4){gstep=gstep/2;}}else{var gstep=maxx/6;} -var curstep=gstep;while(curstepm)m=this.data[t]} -return m;} -GraphViewer.GraphXUnit=function(graph,idx,label){this.body=$a(graph.main_area,'div','gr_xunit');this.body.style[graph.k_barstart]=(idx*graph.xunit_width)+'%';this.body.style[graph.k_barwidth]=graph.xunit_width+'%';this.body.style[graph.k_barlength]='100%';this.show(graph,label,idx);if(graph.show_labels){this.label=$a(graph.x_labels,'div','gr_label');this.label.style[graph.k_barstart]=(idx*graph.xunit_width)+'%';this.label.style[graph.k_barwidth]=graph.xunit_width+'%';if(graph.vertical){$y(this.label,{height:'100%',top:'10%'});this.label.innerHTML=label;}else{middletext(this.label,label);}}} -GraphViewer.GraphXUnit.prototype.show=function(graph,l,idx){var bar_width=(100/(graph.series.length+1));start=(100-(graph.series.length*bar_width))/2 -for(var i=0;i=me.max_height){$y(me.body,{height:me.max_height+'px'});me.scrollbars=1;}else{$y(me.body,{height:null});me.scrollbars=0;}} -this.hide=function(){$dh(me.body);if(!frozen)show_selects();me.is_active=0;if(me.parent&&me.parent.set_unselected){me.parent.set_unselected();}} +this.show=function(){mclose(me);mcancelclosetime();me.is_active=1;$ds(me.body);if(cint(me.body.clientHeight)>=me.max_height){$y(me.body,{height:me.max_height+'px'});me.scrollbars=1;}else{$y(me.body,{height:null});me.scrollbars=0;}} +this.hide=function(){$dh(me.body);me.is_active=0;if(me.parent&&me.parent.set_unselected){me.parent.set_unselected();}} this.clear=function(){mcancelclosetime();mclosetime();} all_dropdowns.push(me);} DropdownMenu.prototype.add_item=function(label,onclick,on_top){var me=this;if(on_top){var mi=document.createElement('div');me.body.insertBefore(mi,me.body.firstChild);mi.className=this.item_style;}else{var mi=$a(this.body,'div',this.item_style);} @@ -983,7 +983,7 @@ this.setup_search=function(){me.menu.add_top_menu('Search',function(){me.search_ me.search_dialog=d;keypress_observers.push({notify_keypress:function(ev,keycode){if(keycode==13&&me.search_dialog.display)me.open_quick_search();}});me.search_sel=new SelectWidget(d.widgets['Select'],[],'120px');me.search_sel.inp.value='Select...';me.open_quick_search=function(){me.search_dialog.hide();var v=sel_val(me.search_sel);if(v)selector.set_search(v);me.search_sel.disabled=1;selector.show();} var nl=profile.can_read.join(',').split(',');for(var i=0;iHelp';$td(t,0,2).innerHTML='Feedback';$td(t,0,3).innerHTML='Profile';$td(t,0,4).innerHTML='Logout';this.menu_table_right=t;$y($td(t,0,5),{width:'18px'});this.spinner=$a($td(t,0,5),'img','',{display:'none'});this.spinner.src='lib/images/ui/spinner.gif';} +this.setup_logout=function(){var w=$a($td(this.body_tab,0,2),'div','',{paddingTop:'2px',textAlign:'right'});this.right_table_style={fontSize:'11px',verticalAlign:'middle',height:'20px',paddingLeft:'4px',paddingRight:'4px'};var t=make_table(w,1,6,null,[],this.right_table_style);$y(t,{cssFloat:'right',color:'#FFF'});$td(t,0,0).innerHTML=user_fullname;$td(t,0,1).innerHTML='Help';$td(t,0,2).innerHTML='Feedback';$td(t,0,3).innerHTML='Profile';$td(t,0,4).innerHTML='Logout';this.menu_table_right=t;$y($td(t,0,5),{width:'18px'});this.spinner=$a($td(t,0,5),'img','',{display:'none'});this.spinner.src='images/ui/spinner.gif';} this.download_backup=function(){$c('webnotes.utils.backups.get_backup',{},function(r,rt){});} this.setup();} var get_help=function(){msgprint('Help not implemented');} @@ -995,7 +995,7 @@ if(!no_history){var tmp=[];for(var i in nav_obj.ol) if(!(nav_obj.ol[i][0]==t&&nav_obj.ol[i][1]==dt&&nav_obj.ol[i][2]==dn))tmp.push(nav_obj.ol[i]);nav_obj.ol=tmp;nav_obj.ol.push([t,dt,dn]) en_t=encodeURIComponent(t);en_dt=encodeURIComponent(dt);en_dn=dn?encodeURIComponent(dn):'';if(en_t=='Page'){var id=en_dt+(dn?('/'+en_dn):'')}else{var id=en_t+'/'+en_dt+(dn?('/'+en_dn):'')} if(nav_obj.on_open) -nav_obj.on_open(id);state=History.getState();if(state.hash!='!'+id){History.replaceState(null,null,'!'+id);}} +nav_obj.on_open(id);if(window.location.hash!='!'+id){window.location.hash='!'+id;}} nav_obj.notify_observers(t,dt,dn);} nav_obj.notify_observers=function(t,dt,dn){for(var i=0;i")&&c[0]);return a>4?a:!1}();return a},l.isInternetExplorer=function(){var a=l.isInternetExplorer.cached=typeof l.isInternetExplorer.cached!="undefined"?l.isInternetExplorer.cached:Boolean(l.getInternetExplorerMajorVersion());return a},l.emulated={pushState:!Boolean(a.history&&a.history.pushState&&a.history.replaceState&&!/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i.test(e.userAgent)&&!/AppleWebKit\/5([0-2]|3[0-2])/i.test(e.userAgent)),hashChange:Boolean(!("onhashchange"in a||"onhashchange"in d)||l.isInternetExplorer()&&l.getInternetExplorerMajorVersion()<8)},l.enabled=!l.emulated.pushState,l.bugs={setHash:Boolean(!l.emulated.pushState&&e.vendor==="Apple Computer, Inc."&&/AppleWebKit\/5([0-2]|3[0-3])/.test(e.userAgent)),safariPoll:Boolean(!l.emulated.pushState&&e.vendor==="Apple Computer, Inc."&&/AppleWebKit\/5([0-2]|3[0-3])/.test(e.userAgent)),ieDoubleCheck:Boolean(l.isInternetExplorer()&&l.getInternetExplorerMajorVersion()<8),hashEscape:Boolean(l.isInternetExplorer()&&l.getInternetExplorerMajorVersion()<7)},l.isEmptyObject=function(a){for(var b in a)return!1;return!0},l.cloneObject=function(a){var b,c;a?(b=k.stringify(a),c=k.parse(b)):c={};return c},l.getRootUrl=function(){var a=d.location.protocol+"//"+(d.location.hostname||d.location.host);if(d.location.port||!1)a+=":"+d.location.port;a+="/";return a},l.getBaseHref=function(){var a=d.getElementsByTagName("base"),b=null,c="";a.length===1&&(b=a[0],c=b.href.replace(/[^\/]+$/,"")),c=c.replace(/\/+$/,""),c&&(c+="/");return c},l.getBaseUrl=function(){var a=l.getBaseHref()||l.getBasePageUrl()||l.getRootUrl();return a},l.getPageUrl=function(){var a=l.getState(!1,!1),b=(a||{}).url||d.location.href,c=b.replace(/\/+$/,"").replace(/[^\/]+$/,function(a,b,c){return/\./.test(a)?a:a+"/"});return c},l.getBasePageUrl=function(){var a=d.location.href.replace(/[#\?].*/,"").replace(/[^\/]+$/,function(a,b,c){return/[^\/]$/.test(a)?"":a}).replace(/\/+$/,"")+"/";return a},l.getFullUrl=function(a,b){var c=a,d=a.substring(0,1);b=typeof b=="undefined"?!0:b,/[a-z]+\:\/\//.test(a)||(d==="/"?c=l.getRootUrl()+a.replace(/^\/+/,""):d==="#"?c=l.getPageUrl().replace(/#.*/,"")+a:d==="?"?c=l.getPageUrl().replace(/[\?#].*/,"")+a:b?c=l.getBaseUrl()+a.replace(/^(\.\/)+/,""):c=l.getBasePageUrl()+a.replace(/^(\.\/)+/,""));return c.replace(/\#$/,"")},l.getShortUrl=function(a){var b=a,c=l.getBaseUrl(),d=l.getRootUrl();l.emulated.pushState&&(b=b.replace(c,"")),b=b.replace(d,"/"),l.isTraditionalAnchor(b)&&(b="./"+b),b=b.replace(/^(\.\/)+/g,"./").replace(/\#$/,"");return b},l.store=f?f.store("History.store")||{}:{},l.store.idToState=l.store.idToState||{},l.store.urlToId=l.store.urlToId||{},l.store.stateToId=l.store.stateToId||{},l.idToState=l.idToState||{},l.stateToId=l.stateToId||{},l.urlToId=l.urlToId||{},l.storedStates=l.storedStates||[],l.savedStates=l.savedStates||[],l.getState=function(a,b){typeof a=="undefined"&&(a=!0),typeof b=="undefined"&&(b=!0);var c=l.getLastSavedState();!c&&b&&(c=l.createStateObject()),a&&(c=l.cloneObject(c),c.url=c.cleanUrl||c.url);return c},l.getIdByState=function(a){var b=l.extractId(a.url);if(!b){var c=l.getStateString(a);if(typeof l.stateToId[c]!="undefined")b=l.stateToId[c];else if(typeof l.store.stateToId[c]!="undefined")b=l.store.stateToId[c];else{for(;;){b=String(Math.floor(Math.random()*1e3));if(typeof l.idToState[b]=="undefined"&&typeof l.store.idToState[b]=="undefined")break}l.stateToId[c]=b,l.idToState[b]=a}}return b},l.normalizeState=function(a){if(!a||typeof a!="object")a={};if(typeof a.normalized!="undefined")return a;if(!a.data||typeof a.data!="object")a.data={};var b={};b.normalized=!0,b.title=a.title||"",b.url=l.getFullUrl(l.unescapeString(a.url||d.location.href)),b.hash=l.getShortUrl(b.url),b.data=l.cloneObject(a.data),b.id=l.getIdByState(b),b.cleanUrl=b.url.replace(/\??\&_suid.*/,""),b.url=b.cleanUrl;var c=!l.isEmptyObject(b.data);if(b.title||c)b.hash=l.getShortUrl(b.url).replace(/\??\&_suid.*/,""),/\?/.test(b.hash)||(b.hash+="?"),b.hash+="&_suid="+b.id;b.hashedUrl=l.getFullUrl(b.hash),(l.emulated.pushState||l.bugs.safariPoll)&&l.hasUrlDuplicate(b)&&(b.url=b.hashedUrl);return b},l.createStateObject=function(a,b,c){var d={data:a,title:b,url:c};d=l.normalizeState(d);return d},l.getStateById=function(a){a=String(a);var c=l.idToState[a]||l.store.idToState[a]||b;return c},l.getStateString=function(a){var b=l.normalizeState(a),c={data:b.data,title:a.title,url:a.url},d=k.stringify(c);return d},l.getStateId=function(a){var b=l.normalizeState(a),c=b.id;return c},l.getHashByState=function(a){var b,c=l.normalizeState(a);b=c.hash;return b},l.extractId=function(a){var b,c,d;c=/(.*)\&_suid=([0-9]+)$/.exec(a),d=c?c[1]||a:a,b=c?String(c[2]||""):"";return b||!1},l.isTraditionalAnchor=function(a){var b=!/[\/\?\.]/.test(a);return b},l.extractState=function(a,b){var c=null;b=b||!1;var d=l.extractId(a);d&&(c=l.getStateById(d));if(!c){var e=l.getFullUrl(a);d=l.getIdByUrl(e)||!1,d&&(c=l.getStateById(d)),!c&&b&&!l.isTraditionalAnchor(a)&&(c=l.createStateObject(null,null,e))}return c},l.getIdByUrl=function(a){var c=l.urlToId[a]||l.store.urlToId[a]||b;return c},l.getLastSavedState=function(){return l.savedStates[l.savedStates.length-1]||b},l.getLastStoredState=function(){return l.storedStates[l.storedStates.length-1]||b},l.hasUrlDuplicate=function(a){var b=!1,c=l.extractState(a.url);b=c&&c.id!==a.id;return b},l.storeState=function(a){l.urlToId[a.url]=a.id,l.storedStates.push(l.cloneObject(a));return a},l.isLastSavedState=function(a){var b=!1;if(l.savedStates.length){var c=a.id,d=l.getLastSavedState(),e=d.id;b=c===e}return b},l.saveState=function(a){if(l.isLastSavedState(a))return!1;l.savedStates.push(l.cloneObject(a));return!0},l.getStateByIndex=function(a){var b=null;typeof a=="undefined"?b=l.savedStates[l.savedStates.length-1]:a<0?b=l.savedStates[l.savedStates.length+a]:b=l.savedStates[a];return b},l.getHash=function(){var a=l.unescapeHash(d.location.hash);return a},l.unescapeString=function(b){var c=b,d;for(;;){d=a.unescape(c);if(d===c)break;c=d}return c},l.unescapeHash=function(a){var b=l.normalizeHash(a);b=l.unescapeString(b);return b},l.normalizeHash=function(a){var b=a.replace(/[^#]*#/,"").replace(/#.*/,"");return b},l.setHash=function(a,b){if(b!==!1&&l.busy()){l.pushQueue({scope:l,callback:l.setHash,args:arguments,queue:b});return!1}var c=l.escapeHash(a);l.busy(!0);var e=l.extractState(a,!0);if(e&&!l.emulated.pushState)l.pushState(e.data,e.title,e.url,!1);else if(d.location.hash!==c)if(l.bugs.setHash){var f=l.getPageUrl();l.pushState(null,null,f+"#"+c,!1)}else d.location.hash=c;return l},l.escapeHash=function(b){var c=l.normalizeHash(b);c=a.escape(c),l.bugs.hashEscape||(c=c.replace(/\%21/g,"!").replace(/\%26/g,"&").replace(/\%3D/g,"=").replace(/\%3F/g,"?"));return c},l.getHashByUrl=function(a){var b=String(a).replace(/([^#]*)#?([^#]*)#?(.*)/,"$2");b=l.unescapeHash(b);return b},l.setTitle=function(a){var b=a.title;if(!b){var c=l.getStateByIndex(0);c&&c.url===a.url&&(b=c.title||l.options.initialTitle)}try{d.getElementsByTagName("title")[0].innerHTML=b.replace("<","<").replace(">",">").replace(" & "," & ")}catch(e){}d.title=b;return l},l.queues=[],l.busy=function(a){typeof a!="undefined"?l.busy.flag=a:typeof l.busy.flag=="undefined"&&(l.busy.flag=!1);if(!l.busy.flag){h(l.busy.timeout);var b=function(){if(!l.busy.flag)for(var a=l.queues.length-1;a>=0;--a){var c=l.queues[a];if(c.length===0)continue;var d=c.shift();l.fireQueueItem(d),l.busy.timeout=g(b,l.options.busyDelay)}};l.busy.timeout=g(b,l.options.busyDelay)}return l.busy.flag},l.fireQueueItem=function(a){return a.callback.apply(a.scope||l,a.args||[])},l.pushQueue=function(a){l.queues[a.queue||0]=l.queues[a.queue||0]||[],l.queues[a.queue||0].push(a);return l},l.queue=function(a,b){typeof a=="function"&&(a={callback:a}),typeof b!="undefined"&&(a.queue=b),l.busy()?l.pushQueue(a):l.fireQueueItem(a);return l},l.clearQueue=function(){l.busy.flag=!1,l.queues=[];return l},l.stateChanged=!1,l.doubleChecker=!1,l.doubleCheckComplete=function(){l.stateChanged=!0,l.doubleCheckClear();return l},l.doubleCheckClear=function(){l.doubleChecker&&(h(l.doubleChecker),l.doubleChecker=!1);return l},l.doubleCheck=function(a){l.stateChanged=!1,l.doubleCheckClear(),l.bugs.ieDoubleCheck&&(l.doubleChecker=g(function(){l.doubleCheckClear(),l.stateChanged||a();return!0},l.options.doubleCheckInterval));return l},l.safariStatePoll=function(){var b=l.extractState(d.location.href),c;if(!l.isLastSavedState(b))c=b;else return;c||(c=l.createStateObject()),l.Adapter.trigger(a,"popstate");return l},l.back=function(a){if(a!==!1&&l.busy()){l.pushQueue({scope:l,callback:l.back,args:arguments,queue:a});return!1}l.busy(!0),l.doubleCheck(function(){l.back(!1)}),m.go(-1);return!0},l.forward=function(a){if(a!==!1&&l.busy()){l.pushQueue({scope:l,callback:l.forward,args:arguments,queue:a});return!1}l.busy(!0),l.doubleCheck(function(){l.forward(!1)}),m.go(1);return!0},l.go=function(a,b){var c;if(a>0)for(c=1;c<=a;++c)l.forward(b);else{if(!(a<0))throw new Error("History.go: History.go requires a positive or negative integer passed.");for(c=-1;c>=a;--c)l.back(b)}return l},l.saveState(l.storeState(l.extractState(d.location.href,!0))),f&&(l.onUnload=function(){var a=f.store("History.store")||{},b;a.idToState=a.idToState||{},a.urlToId=a.urlToId||{},a.stateToId=a.stateToId||{};for(b in l.idToState){if(!l.idToState.hasOwnProperty(b))continue;a.idToState[b]=l.idToState[b]}for(b in l.urlToId){if(!l.urlToId.hasOwnProperty(b))continue;a.urlToId[b]=l.urlToId[b]}for(b in l.stateToId){if(!l.stateToId.hasOwnProperty(b))continue;a.stateToId[b]=l.stateToId[b]}l.store=a,f.store("History.store",a)},l.intervalList.push(i(l.onUnload,l.options.storeInterval)),l.Adapter.bind(a,"beforeunload",l.onUnload),l.Adapter.bind(a,"unload",l.onUnload));if(l.emulated.pushState){var n=function(){};l.pushState=l.pushState||n,l.replaceState=l.replaceState||n}else{l.onPopState=function(b){l.doubleCheckComplete();var c=l.getHash();if(c){var e=l.extractState(c||d.location.href,!0);e?l.replaceState(e.data,e.title,e.url,!1):(l.Adapter.trigger(a,"anchorchange"),l.busy(!1)),l.expectedStateId=!1;return!1}var f=!1;b=b||{},typeof b.state=="undefined"&&(typeof b.originalEvent!="undefined"&&typeof b.originalEvent.state!="undefined"?b.state=b.originalEvent.state||!1:typeof b.event!="undefined"&&typeof b.event.state!="undefined"&&(b.state=b.event.state||!1)),b.state=b.state||!1,b.state?f=l.getStateById(b.state):l.expectedStateId?f=l.getStateById(l.expectedStateId):f=l.extractState(d.location.href),f||(f=l.createStateObject(null,null,d.location.href)),l.expectedStateId=!1;if(l.isLastSavedState(f)){l.busy(!1);return!1}l.storeState(f),l.saveState(f),l.setTitle(f),l.Adapter.trigger(a,"statechange"),l.busy(!1);return!0},l.Adapter.bind(a,"popstate",l.onPopState),l.pushState=function(b,c,d,e){if(l.getHashByUrl(d)&&l.emulated.pushState)throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(e!==!1&&l.busy()){l.pushQueue({scope:l,callback:l.pushState,args:arguments,queue:e});return!1}l.busy(!0);var f=l.createStateObject(b,c,d);l.isLastSavedState(f)?l.busy(!1):(l.storeState(f),l.expectedStateId=f.id,m.pushState(f.id,f.title,f.url),l.Adapter.trigger(a,"popstate"));return!0},l.replaceState=function(b,c,d,e){if(l.getHashByUrl(d)&&l.emulated.pushState)throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(e!==!1&&l.busy()){l.pushQueue({scope:l,callback:l.replaceState,args:arguments,queue:e});return!1}l.busy(!0);var f=l.createStateObject(b,c,d);l.isLastSavedState(f)?l.busy(!1):(l.storeState(f),l.expectedStateId=f.id,m.replaceState(f.id,f.title,f.url),l.Adapter.trigger(a,"popstate"));return!0},l.bugs.safariPoll&&l.intervalList.push(i(l.safariStatePoll,l.options.safariPollInterval));if(e.vendor==="Apple Computer, Inc."||(e.appCodeName||"")==="Mozilla")l.Adapter.bind(a,"hashchange",function(){l.Adapter.trigger(a,"popstate")}),l.getHash()&&l.Adapter.onDomLoad(function(){l.Adapter.trigger(a,"hashchange")})}},l.init()})(window) \ No newline at end of file diff --git a/js/lib/history/history.min.js b/js/lib/history/history.min.js index a4851329ed..4843b3a7cd 100644 --- a/js/lib/history/history.min.js +++ b/js/lib/history/history.min.js @@ -1,6 +1,13 @@ -(function(a,b){var c=a.History=a.History||{},d=a.jQuery;if(typeof c.Adapter!="undefined")throw new Error("History.js Adapter has already been loaded...");c.Adapter={bind:function(a,b,c){d(a).bind(b,c)},trigger:function(a,b){d(a).trigger(b)},onDomLoad:function(a){d(a)}},typeof c.init!="undefined"&&c.init()})(window) -(function(a,b){"use strict";var c=a.console||b,d=a.document,e=a.navigator,f=a.amplify||!1,g=a.setTimeout,h=a.clearTimeout,i=a.setInterval,j=a.clearInterval,k=a.JSON,l=a.History=a.History||{},m=a.history;k.stringify=k.stringify||k.encode,k.parse=k.parse||k.decode;if(typeof l.init!="undefined")throw new Error("History.js Core has already been loaded...");l.init=function(){if(typeof l.Adapter=="undefined")return!1;typeof l.initCore!="undefined"&&l.initCore(),typeof l.initHtml4!="undefined"&&l.initHtml4();return!0},l.initCore=function(){if(typeof l.initCore.initialized!="undefined")return!1;l.initCore.initialized=!0,l.options=l.options||{},l.options.hashChangeInterval=l.options.hashChangeInterval||100,l.options.safariPollInterval=l.options.safariPollInterval||500,l.options.doubleCheckInterval=l.options.doubleCheckInterval||500,l.options.storeInterval=l.options.storeInterval||1e3,l.options.busyDelay=l.options.busyDelay||250,l.options.debug=l.options.debug||!1,l.options.initialTitle=l.options.initialTitle||d.title,l.intervalList=[],l.clearAllIntervals=function(){var a,b=l.intervalList;if(typeof b!="undefined"&&b!==null){for(a=0;a")&&c[0]);return a>4?a:!1}();return a},l.isInternetExplorer=function(){var a=l.isInternetExplorer.cached=typeof l.isInternetExplorer.cached!="undefined"?l.isInternetExplorer.cached:Boolean(l.getInternetExplorerMajorVersion());return a},l.emulated={pushState:!Boolean(a.history&&a.history.pushState&&a.history.replaceState&&!/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i.test(e.userAgent)&&!/AppleWebKit\/5([0-2]|3[0-2])/i.test(e.userAgent)),hashChange:Boolean(!("onhashchange"in a||"onhashchange"in d)||l.isInternetExplorer()&&l.getInternetExplorerMajorVersion()<8)},l.enabled=!l.emulated.pushState,l.bugs={setHash:Boolean(!l.emulated.pushState&&e.vendor==="Apple Computer, Inc."&&/AppleWebKit\/5([0-2]|3[0-3])/.test(e.userAgent)),safariPoll:Boolean(!l.emulated.pushState&&e.vendor==="Apple Computer, Inc."&&/AppleWebKit\/5([0-2]|3[0-3])/.test(e.userAgent)),ieDoubleCheck:Boolean(l.isInternetExplorer()&&l.getInternetExplorerMajorVersion()<8),hashEscape:Boolean(l.isInternetExplorer()&&l.getInternetExplorerMajorVersion()<7)},l.isEmptyObject=function(a){for(var b in a)return!1;return!0},l.cloneObject=function(a){var b,c;a?(b=k.stringify(a),c=k.parse(b)):c={};return c},l.getRootUrl=function(){var a=d.location.protocol+"//"+(d.location.hostname||d.location.host);if(d.location.port||!1)a+=":"+d.location.port;a+="/";return a},l.getBaseHref=function(){var a=d.getElementsByTagName("base"),b=null,c="";a.length===1&&(b=a[0],c=b.href.replace(/[^\/]+$/,"")),c=c.replace(/\/+$/,""),c&&(c+="/");return c},l.getBaseUrl=function(){var a=l.getBaseHref()||l.getBasePageUrl()||l.getRootUrl();return a},l.getPageUrl=function(){var a=l.getState(!1,!1),b=(a||{}).url||d.location.href,c=b.replace(/\/+$/,"").replace(/[^\/]+$/,function(a,b,c){return/\./.test(a)?a:a+"/"});return c},l.getBasePageUrl=function(){var a=d.location.href.replace(/[#\?].*/,"").replace(/[^\/]+$/,function(a,b,c){return/[^\/]$/.test(a)?"":a}).replace(/\/+$/,"")+"/";return a},l.getFullUrl=function(a,b){var c=a,d=a.substring(0,1);b=typeof b=="undefined"?!0:b,/[a-z]+\:\/\//.test(a)||(d==="/"?c=l.getRootUrl()+a.replace(/^\/+/,""):d==="#"?c=l.getPageUrl().replace(/#.*/,"")+a:d==="?"?c=l.getPageUrl().replace(/[\?#].*/,"")+a:b?c=l.getBaseUrl()+a.replace(/^(\.\/)+/,""):c=l.getBasePageUrl()+a.replace(/^(\.\/)+/,""));return c.replace(/\#$/,"")},l.getShortUrl=function(a){var b=a,c=l.getBaseUrl(),d=l.getRootUrl();l.emulated.pushState&&(b=b.replace(c,"")),b=b.replace(d,"/"),l.isTraditionalAnchor(b)&&(b="./"+b),b=b.replace(/^(\.\/)+/g,"./").replace(/\#$/,"");return b},l.store=f?f.store("History.store")||{}:{},l.store.idToState=l.store.idToState||{},l.store.urlToId=l.store.urlToId||{},l.store.stateToId=l.store.stateToId||{},l.idToState=l.idToState||{},l.stateToId=l.stateToId||{},l.urlToId=l.urlToId||{},l.storedStates=l.storedStates||[],l.savedStates=l.savedStates||[],l.getState=function(a,b){typeof a=="undefined"&&(a=!0),typeof b=="undefined"&&(b=!0);var c=l.getLastSavedState();!c&&b&&(c=l.createStateObject()),a&&(c=l.cloneObject(c),c.url=c.cleanUrl||c.url);return c},l.getIdByState=function(a){var b=l.extractId(a.url);if(!b){var c=l.getStateString(a);if(typeof l.stateToId[c]!="undefined")b=l.stateToId[c];else if(typeof l.store.stateToId[c]!="undefined")b=l.store.stateToId[c];else{for(;;){b=String(Math.floor(Math.random()*1e3));if(typeof l.idToState[b]=="undefined"&&typeof l.store.idToState[b]=="undefined")break}l.stateToId[c]=b,l.idToState[b]=a}}return b},l.normalizeState=function(a){if(!a||typeof a!="object")a={};if(typeof a.normalized!="undefined")return a;if(!a.data||typeof a.data!="object")a.data={};var b={};b.normalized=!0,b.title=a.title||"",b.url=l.getFullUrl(l.unescapeString(a.url||d.location.href)),b.hash=l.getShortUrl(b.url),b.data=l.cloneObject(a.data),b.id=l.getIdByState(b),b.cleanUrl=b.url.replace(/\??\&_suid.*/,""),b.url=b.cleanUrl;var c=!l.isEmptyObject(b.data);if(b.title||c)b.hash=l.getShortUrl(b.url).replace(/\??\&_suid.*/,""),/\?/.test(b.hash)||(b.hash+="?"),b.hash+="&_suid="+b.id;b.hashedUrl=l.getFullUrl(b.hash),(l.emulated.pushState||l.bugs.safariPoll)&&l.hasUrlDuplicate(b)&&(b.url=b.hashedUrl);return b},l.createStateObject=function(a,b,c){var d={data:a,title:b,url:c};d=l.normalizeState(d);return d},l.getStateById=function(a){a=String(a);var c=l.idToState[a]||l.store.idToState[a]||b;return c},l.getStateString=function(a){var b=l.normalizeState(a),c={data:b.data,title:a.title,url:a.url},d=k.stringify(c);return d},l.getStateId=function(a){var b=l.normalizeState(a),c=b.id;return c},l.getHashByState=function(a){var b,c=l.normalizeState(a);b=c.hash;return b},l.extractId=function(a){var b,c,d;c=/(.*)\&_suid=([0-9]+)$/.exec(a),d=c?c[1]||a:a,b=c?String(c[2]||""):"";return b||!1},l.isTraditionalAnchor=function(a){var b=!/[\/\?\.]/.test(a);return b},l.extractState=function(a,b){var c=null;b=b||!1;var d=l.extractId(a);d&&(c=l.getStateById(d));if(!c){var e=l.getFullUrl(a);d=l.getIdByUrl(e)||!1,d&&(c=l.getStateById(d)),!c&&b&&!l.isTraditionalAnchor(a)&&(c=l.createStateObject(null,null,e))}return c},l.getIdByUrl=function(a){var c=l.urlToId[a]||l.store.urlToId[a]||b;return c},l.getLastSavedState=function(){return l.savedStates[l.savedStates.length-1]||b},l.getLastStoredState=function(){return l.storedStates[l.storedStates.length-1]||b},l.hasUrlDuplicate=function(a){var b=!1,c=l.extractState(a.url);b=c&&c.id!==a.id;return b},l.storeState=function(a){l.urlToId[a.url]=a.id,l.storedStates.push(l.cloneObject(a));return a},l.isLastSavedState=function(a){var b=!1;if(l.savedStates.length){var c=a.id,d=l.getLastSavedState(),e=d.id;b=c===e}return b},l.saveState=function(a){if(l.isLastSavedState(a))return!1;l.savedStates.push(l.cloneObject(a));return!0},l.getStateByIndex=function(a){var b=null;typeof a=="undefined"?b=l.savedStates[l.savedStates.length-1]:a<0?b=l.savedStates[l.savedStates.length+a]:b=l.savedStates[a];return b},l.getHash=function(){var a=l.unescapeHash(d.location.hash);return a},l.unescapeString=function(b){var c=b,d;for(;;){d=a.unescape(c);if(d===c)break;c=d}return c},l.unescapeHash=function(a){var b=l.normalizeHash(a);b=l.unescapeString(b);return b},l.normalizeHash=function(a){var b=a.replace(/[^#]*#/,"").replace(/#.*/,"");return b},l.setHash=function(a,b){if(b!==!1&&l.busy()){l.pushQueue({scope:l,callback:l.setHash,args:arguments,queue:b});return!1}var c=l.escapeHash(a);l.busy(!0);var e=l.extractState(a,!0);if(e&&!l.emulated.pushState)l.pushState(e.data,e.title,e.url,!1);else if(d.location.hash!==c)if(l.bugs.setHash){var f=l.getPageUrl();l.pushState(null,null,f+"#"+c,!1)}else d.location.hash=c;return l},l.escapeHash=function(b){var c=l.normalizeHash(b);c=a.escape(c),l.bugs.hashEscape||(c=c.replace(/\%21/g,"!").replace(/\%26/g,"&").replace(/\%3D/g,"=").replace(/\%3F/g,"?"));return c},l.getHashByUrl=function(a){var b=String(a).replace(/([^#]*)#?([^#]*)#?(.*)/,"$2");b=l.unescapeHash(b);return b},l.setTitle=function(a){var b=a.title;if(!b){var c=l.getStateByIndex(0);c&&c.url===a.url&&(b=c.title||l.options.initialTitle)}try{d.getElementsByTagName("title")[0].innerHTML=b.replace("<","<").replace(">",">").replace(" & "," & ")}catch(e){}d.title=b;return l},l.queues=[],l.busy=function(a){typeof a!="undefined"?l.busy.flag=a:typeof l.busy.flag=="undefined"&&(l.busy.flag=!1);if(!l.busy.flag){h(l.busy.timeout);var b=function(){if(!l.busy.flag)for(var a=l.queues.length-1;a>=0;--a){var c=l.queues[a];if(c.length===0)continue;var d=c.shift();l.fireQueueItem(d),l.busy.timeout=g(b,l.options.busyDelay)}};l.busy.timeout=g(b,l.options.busyDelay)}return l.busy.flag},l.fireQueueItem=function(a){return a.callback.apply(a.scope||l,a.args||[])},l.pushQueue=function(a){l.queues[a.queue||0]=l.queues[a.queue||0]||[],l.queues[a.queue||0].push(a);return l},l.queue=function(a,b){typeof a=="function"&&(a={callback:a}),typeof b!="undefined"&&(a.queue=b),l.busy()?l.pushQueue(a):l.fireQueueItem(a);return l},l.clearQueue=function(){l.busy.flag=!1,l.queues=[];return l},l.stateChanged=!1,l.doubleChecker=!1,l.doubleCheckComplete=function(){l.stateChanged=!0,l.doubleCheckClear();return l},l.doubleCheckClear=function(){l.doubleChecker&&(h(l.doubleChecker),l.doubleChecker=!1);return l},l.doubleCheck=function(a){l.stateChanged=!1,l.doubleCheckClear(),l.bugs.ieDoubleCheck&&(l.doubleChecker=g(function(){l.doubleCheckClear(),l.stateChanged||a();return!0},l.options.doubleCheckInterval));return l},l.safariStatePoll=function(){var b=l.extractState(d.location.href),c;if(!l.isLastSavedState(b))c=b;else return;c||(c=l.createStateObject()),l.Adapter.trigger(a,"popstate");return l},l.back=function(a){if(a!==!1&&l.busy()){l.pushQueue({scope:l,callback:l.back,args:arguments,queue:a});return!1}l.busy(!0),l.doubleCheck(function(){l.back(!1)}),m.go(-1);return!0},l.forward=function(a){if(a!==!1&&l.busy()){l.pushQueue({scope:l,callback:l.forward,args:arguments,queue:a});return!1}l.busy(!0),l.doubleCheck(function(){l.forward(!1)}),m.go(1);return!0},l.go=function(a,b){var c;if(a>0)for(c=1;c<=a;++c)l.forward(b);else{if(!(a<0))throw new Error("History.go: History.go requires a positive or negative integer passed.");for(c=-1;c>=a;--c)l.back(b)}return l},l.saveState(l.storeState(l.extractState(d.location.href,!0))),f&&(l.onUnload=function(){var a=f.store("History.store")||{},b;a.idToState=a.idToState||{},a.urlToId=a.urlToId||{},a.stateToId=a.stateToId||{};for(b in l.idToState){if(!l.idToState.hasOwnProperty(b))continue;a.idToState[b]=l.idToState[b]}for(b in l.urlToId){if(!l.urlToId.hasOwnProperty(b))continue;a.urlToId[b]=l.urlToId[b]}for(b in l.stateToId){if(!l.stateToId.hasOwnProperty(b))continue;a.stateToId[b]=l.stateToId[b]}l.store=a,f.store("History.store",a)},l.intervalList.push(i(l.onUnload,l.options.storeInterval)),l.Adapter.bind(a,"beforeunload",l.onUnload),l.Adapter.bind(a,"unload",l.onUnload));if(l.emulated.pushState){var n=function(){};l.pushState=l.pushState||n,l.replaceState=l.replaceState||n}else{l.onPopState=function(b){l.doubleCheckComplete();var c=l.getHash();if(c){var e=l.extractState(c||d.location.href,!0);e?l.replaceState(e.data,e.title,e.url,!1):(l.Adapter.trigger(a,"anchorchange"),l.busy(!1)),l.expectedStateId=!1;return!1}var f=!1;b=b||{},typeof b.state=="undefined"&&(typeof b.originalEvent!="undefined"&&typeof b.originalEvent.state!="undefined"?b.state=b.originalEvent.state||!1:typeof b.event!="undefined"&&typeof b.event.state!="undefined"&&(b.state=b.event.state||!1)),b.state=b.state||!1,b.state?f=l.getStateById(b.state):l.expectedStateId?f=l.getStateById(l.expectedStateId):f=l.extractState(d.location.href),f||(f=l.createStateObject(null,null,d.location.href)),l.expectedStateId=!1;if(l.isLastSavedState(f)){l.busy(!1);return!1}l.storeState(f),l.saveState(f),l.setTitle(f),l.Adapter.trigger(a,"statechange"),l.busy(!1);return!0},l.Adapter.bind(a,"popstate",l.onPopState),l.pushState=function(b,c,d,e){if(l.getHashByUrl(d)&&l.emulated.pushState)throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(e!==!1&&l.busy()){l.pushQueue({scope:l,callback:l.pushState,args:arguments,queue:e});return!1}l.busy(!0);var f=l.createStateObject(b,c,d);l.isLastSavedState(f)?l.busy(!1):(l.storeState(f),l.expectedStateId=f.id,m.pushState(f.id,f.title,f.url),l.Adapter.trigger(a,"popstate"));return!0},l.replaceState=function(b,c,d,e){if(l.getHashByUrl(d)&&l.emulated.pushState)throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(e!==!1&&l.busy()){l.pushQueue({scope:l,callback:l.replaceState,args:arguments,queue:e});return!1}l.busy(!0);var f=l.createStateObject(b,c,d);l.isLastSavedState(f)?l.busy(!1):(l.storeState(f),l.expectedStateId=f.id,m.replaceState(f.id,f.title,f.url),l.Adapter.trigger(a,"popstate"));return!0},l.bugs.safariPoll&&l.intervalList.push(i(l.safariStatePoll,l.options.safariPollInterval));if(e.vendor==="Apple Computer, Inc."||(e.appCodeName||"")==="Mozilla")l.Adapter.bind(a,"hashchange",function(){l.Adapter.trigger(a,"popstate")}),l.getHash()&&l.Adapter.onDomLoad(function(){l.Adapter.trigger(a,"hashchange")})}},l.init()})(window) -(function(a,b){"use strict";var c=a.document,d=a.setTimeout||d,e=a.clearTimeout||e,f=a.setInterval||f,g=a.History=a.History||{};if(typeof g.initHtml4!="undefined")throw new Error("History.js HTML4 Support has already been loaded...");g.initHtml4=function(){if(typeof g.initHtml4.initialized!="undefined")return!1;g.initHtml4.initialized=!0,g.enabled=!0,g.savedHashes=[],g.isLastHash=function(a){var b=g.getHashByIndex(),c=a===b;return c},g.saveHash=function(a){if(g.isLastHash(a))return!1;g.savedHashes.push(a);return!0},g.getHashByIndex=function(a){var b=null;typeof a=="undefined"?b=g.savedHashes[g.savedHashes.length-1]:a<0?b=g.savedHashes[g.savedHashes.length+a]:b=g.savedHashes[a];return b},g.discardedHashes={},g.discardedStates={},g.discardState=function(a,b,c){var d=g.getHashByState(a),e={discardedState:a,backState:c,forwardState:b};g.discardedStates[d]=e;return!0},g.discardHash=function(a,b,c){var d={discardedHash:a,backState:c,forwardState:b};g.discardedHashes[a]=d;return!0},g.discardedState=function(a){var b=g.getHashByState(a),c=g.discardedStates[b]||!1;return c},g.discardedHash=function(a){var b=g.discardedHashes[a]||!1;return b},g.recycleState=function(a){var b=g.getHashByState(a);g.discardedState(a)&&delete g.discardedStates[b];return!0},g.emulated.hashChange&&(g.hashChangeInit=function(){g.checkerFunction=null;var b="";if(g.isInternetExplorer()){var d="historyjs-iframe",e=c.createElement("iframe");e.setAttribute("id",d),e.style.display="none",c.body.appendChild(e),e.contentWindow.document.open(),e.contentWindow.document.close();var h="",i=!1;g.checkerFunction=function(){if(i)return!1;i=!0;var c=g.getHash()||"",d=g.unescapeHash(e.contentWindow.document.location.hash)||"";c!==b?(b=c,d!==c&&(h=d=c,e.contentWindow.document.open(),e.contentWindow.document.close(),e.contentWindow.document.location.hash=g.escapeHash(c)),g.Adapter.trigger(a,"hashchange")):d!==h&&(h=d,g.setHash(d,!1)),i=!1;return!0}}else g.checkerFunction=function(){var c=g.getHash();c!==b&&(b=c,g.Adapter.trigger(a,"hashchange"));return!0};g.intervalList.push(f(g.checkerFunction,g.options.hashChangeInterval));return!0},g.Adapter.onDomLoad(g.hashChangeInit)),g.emulated.pushState&&(g.onHashChange=function(b){var d=b&&b.newURL||c.location.href,e=g.getHashByUrl(d),f=null,h=null,i=null;if(g.isLastHash(e)){g.busy(!1);return!1}g.doubleCheckComplete(),g.saveHash(e);if(e&&g.isTraditionalAnchor(e)){g.Adapter.trigger(a,"anchorchange"),g.busy(!1);return!1}f=g.extractState(g.getFullUrl(e||c.location.href,!1),!0);if(g.isLastSavedState(f)){g.busy(!1);return!1}h=g.getHashByState(f);var j=g.discardedState(f);if(j){g.getHashByIndex(-2)===g.getHashByState(j.forwardState)?g.back(!1):g.forward(!1);return!1}g.pushState(f.data,f.title,f.url,!1);return!0},g.Adapter.bind(a,"hashchange",g.onHashChange),g.pushState=function(b,d,e,f){if(g.getHashByUrl(e))throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(f!==!1&&g.busy()){g.pushQueue({scope:g,callback:g.pushState,args:arguments,queue:f});return!1}g.busy(!0);var h=g.createStateObject(b,d,e),i=g.getHashByState(h),j=g.getState(!1),k=g.getHashByState(j),l=g.getHash();g.storeState(h),g.expectedStateId=h.id,g.recycleState(h),g.setTitle(h);if(i===k){g.busy(!1);return!1}if(i!==l&&i!==g.getShortUrl(c.location.href)){g.setHash(i,!1);return!1}g.saveState(h),g.Adapter.trigger(a,"statechange"),g.busy(!1);return!0},g.replaceState=function(a,b,c,d){if(g.getHashByUrl(c))throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(d!==!1&&g.busy()){g.pushQueue({scope:g,callback:g.replaceState,args:arguments,queue:d});return!1}g.busy(!0);var e=g.createStateObject(a,b,c),f=g.getState(!1),h=g.getStateByIndex(-2);g.discardState(f,e,h),g.pushState(e.data,e.title,e.url,!1);return!0},g.getHash()&&!g.emulated.hashChange&&g.Adapter.onDomLoad(function(){g.Adapter.trigger(a,"hashchange")}))},g.init()})(window) +/* + * jQuery hashchange event - v1.3 - 7/21/2010 + * http://benalman.com/projects/jquery-hashchange-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('';var div=$a(parent,'div');div.innerHTML='
    ';var ul_form=div.childNodes[0];var f_list=[];var inp_fdata=$a_input($a(ul_form,'span'),'file',{name:'filedata'},{marginLeft:'7px'});var inp=$a_input($a(ul_form,'span'),'hidden',{name:'cmd'});inp.value='uploadfile';var inp=$a_input($a(ul_form,'span'),'hidden',{name:'uploader_id'});inp.value=id;var inp=$a_input($a(ul_form,'span'),'submit',null,{marginLeft:'7px'});inp.value='Upload';$y(inp,{width:'80px'});$wid_normal(inp);inp.onmouseover=function(){$wid_active(this);} inp.onmouseout=function(){$wid_normal(this);} @@ -1099,85 +759,6 @@ page_body.change_to(page_name);try{if(pscript['onload_'+page_name])pscript['onlo return p;} function refresh_page(page_name){var fn=function(r,rt){render_page(page_name)} $c('webnotes.widgets.page.getpage',{'name':page_name,stylesheets:JSON.stringify(stylesheets)},fn);} -ItemBrowserPage=function(){this.lists={};this.dt_details={};this.cur_list=null;this.my_page=page_body.add_page('ItemBrowser');this.wrapper=$a(this.my_page,'div');} -ItemBrowserPage.prototype.show=function(dt,label,field_list){var me=this;if(this.cur_list&&this.cur_list.dt!=dt)$dh(this.cur_list.layout.wrapper);if(!me.lists[dt]){me.lists[dt]=new ItemBrowser(me.wrapper,dt,label,field_list);} -me.cur_list=me.lists[dt];me.cur_list.show();page_body.change_to('ItemBrowser');} -ItemBrowser=function(parent,dt,label,field_list){var me=this;this.label=label?label:dt;this.dt=dt;this.field_list=field_list;this.tag_filter_dict={};this.items=[];this.cscript={};var l=get_doctype_label(dt);l=(l.toLowerCase().substr(-4)=='list')?l:(l+' List') -this.layout=new wn.PageLayout({parent:parent,main_width:'75%',sidebar_width:'25%',heading:l}) -this.layout.no_records=$a($td(this.layout.wtab,0,0),'div');this.desc_area=$a(this.layout.head,'div','field_description','');$dh(this.layout.page_head.separator);this.no_result_area=$a(this.layout.no_records,'div','layout_wrapper',{fontSize:'14px',textAlign:'center',padding:'200px 0px'});this.layout.loading=$a($td(this.layout.wtab,0,0),'div','layout_wrapper',{padding:'200px 0px',textAlign:'center',fontSize:'14px',color:'#444',display:'none'});this.layout.loading.innerHTML='Loading';this.setup_toolbar();this.setup_sidebar();} -ItemBrowser.prototype.show_area=function(area){$ds(this.layout[area]);var al=['loading','no_records','main'];for(var a in al){if(al[a]!=area) -$dh(this.layout[al[a]]);}} -ItemBrowser.prototype.setup_sidebar=function(){var me=this;$y(this.layout.sidebar_area,{paddingTop:'53px'});this.sidebar=new wn.widgets.PageSidebar(this.layout.sidebar_area,{sections:[{title:'Top Tags',render:function(body){new wn.widgets.TagCloud(body,me.dt,function(tag){me.set_tag_filter(tag)});}}]});} -ItemBrowser.prototype.setup_toolbar=function(){var me=this;var parent=this.layout.toolbar_area -this.main_toolbar=$a(parent,'div','',{padding:'3px',backgroundColor:'#EEE'});$br(this.main_toolbar,'3px');$gr(this.main_toolbar,'#DDD','#CCC');this.sub_toolbar=$a(parent,'div','',{marginBottom:'7px',padding:'3px',textAlign:'right',fontSize:'11px',color:'#444'});this.archives_label=$a(parent,'div','help_box_big',{display:'none'},'Showing from Archives');var span=$a(this.archives_label,'span','link_type',{marginLeft:'8px'},'Show Active');span.onclick=function(){me.show_archives.checked=0;me.show_archives.onclick();} -this.trend_area=$a(parent,'div','',{marginBottom:'16px',padding:'4px',backgroundColor:'#EEF',border:'1px solid #CCF',display:'none'});$br(this.trend_area,'5px');this.tag_filters=$a(parent,'div','',{marginBottom:'8px',display:'none',padding:'6px 8px 8px 8px',backgroundColor:'#FFD'});var span=$a(this.tag_filters,'span','',{marginRight:'4px',color:'#444'});span.innerHTML='Showing for:';this.tag_area=$a(this.tag_filters,'span');var div=$a(parent,'div','',{margin:'3px 5px'});var chk=$a_input(div,'checkbox');var lab=$a(div,'span','',{marginLeft:'9px'},'Select All');chk.onclick=function(){for(var i=0;imaxval)maxval=trend[key]};var div=$a(this.trend_area,'div','',{marginLeft:'32px'});div.innerHTML='Activity in last 30 days';var wrapper_tab=make_table(this.trend_area,1,2,'100%',['20px',null],{padding:'2px 4px',fontSize:'10px',color:'#888'});var ylab_tab=make_table($td(wrapper_tab,0,0),2,1,'100%',['100%'],{verticalAlign:'top',textAlign:'right',height:'24px'});$td(ylab_tab,0,0).innerHTML=maxval;$y($td(ylab_tab,1,0),{verticalAlign:'bottom'});$td(ylab_tab,1,0).innerHTML='0';var tab=make_table($td(wrapper_tab,0,1),1,30,'100%',[],{width:10/3+'%',border:'1px solid #DDD',height:'40px',verticalAlign:'bottom',textAlign:'center',padding:'2px',backgroundColor:'#FFF'});var labtab=make_table($td(wrapper_tab,0,1),1,6,'100%',[],{width:100/6+'%',border:'1px solid #EEF',height:'16px',color:'#888',textAlign:'right',fontSize:'10px'});for(var i=0;i<30;i++){var div=$a($td(tab,0,29-i),'div','',{backgroundColor:'#4AC',width:'50%',margin:'auto',height:(trend[i+'']?(trend[i+'']*100/maxval):0)+'%'});div.setAttribute('title',trend[i]+' records');if(i%5==0){$td(labtab,0,5-(i/5)).innerHTML=dateutil.obj_to_user(dateutil.add_days(new Date(),-i));$y($td(tab,0,i-1),{'backgroundColor':'#EEE'});}} -$td(labtab,0,5).innerHTML='Today';} -ItemBrowser.prototype.show_no_result=function(){this.show_area('no_records');this.no_result_area.innerHTML=repl('No %(dt)s found. Click here to create your first %(dt)s!',{dt:get_doctype_label(this.dt)});set_title(get_doctype_label(this.label));} -ItemBrowser.prototype.make_new=function(dt,label,field_list){this.make_the_list(dt,this.layout.body);} -ItemBrowser.prototype.add_search_conditions=function(q){if(this.search_input.value){q.conds+=' AND '+q.table+'.name LIKE "%'+this.search_input.value+'%"';}} -ItemBrowser.prototype.add_tag_conditions=function(q){var me=this;if(keys(me.tag_filter_dict).length){var cl=[];for(var key in me.tag_filter_dict){var val=key;var op='=';var fn=me.tag_filter_dict[key].fieldname;fn=fn?fn:'_user_tags';if(fn=='docstatus')val=(key=='Draft'?'0':'1');else if(fn=='_user_tags'){val='%,'+key+'%';op=' LIKE ';} -cl.push(q.table+'.`'+fn+'`'+op+'"'+val+'"');} -if(cl) -q.conds+=' AND '+cl.join(' AND ')+' ';}} -ItemBrowser.prototype.make_the_list=function(dt,wrapper){var me=this;var lst=new Listing(dt,1);lst.dt=dt;lst.cl=this.dt_details.columns;lst.opts={cell_style:{padding:'0px 2px'},alt_cell_style:{backgroundColor:'#FFFFFF'},hide_export:1,hide_print:1,hide_rec_label:0,show_calc:0,show_empty_tab:0,show_no_records_label:1,show_new:0,show_report:1,no_border:1,append_records:1,formatted:1} -if(user_defaults.hide_report_builder)lst.opts.show_report=0;lst.is_std_query=1;lst.get_query=function(){q={};var fl=[];q.table=repl('`%(prefix)s%(dt)s`',{prefix:(me.show_archives.checked?'arc':'tab'),dt:this.dt});for(var i=0;i=');lst.add_filter('To '+label,ftype,fopts,dt,fname,'<=');}else{lst.add_filter(label,ftype,fopts,dt,fname,(in_list(['Data','Text','Link'],ftype)?'LIKE':''));}} -$dh(lst.filter_wrapper);lst.set_default_sort('modified','DESC');this.lst=lst;lst.run();} -ItemBrowser.prototype.run=function(){this.items=[];this.select_all.checked=false;this.lst.run();} -ItemBrowser.prototype.get_checked=function(){var il=[];for(var i=0;i'+tmp+'