+++ /dev/null
-#=====================================================================
-# LX-Office ERP
-# Copyright (C) 2004
-# Based on SQL-Ledger Version 2.1.9
-# Web http://www.lx-office.org
-#
-######################################################################
-# SQL-Ledger Accounting
-# Copyright (c) 1998-2002
-#
-# Author: Dieter Simader
-# Email: dsimader@sql-ledger.org
-# Web: http://www.sql-ledger.org
-#
-# Contributors: Christopher Browne
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-#######################################################################
-#
-# three frame layout with refractured menu
-#
-# CHANGE LOG:
-# DS. 2002-03-25 Created
-# 2004-12-14 - New Optik - Marco Welter <mawe@linux-studio.de>
-# 2007-10-14 - XMLified - Holger Will <holger@treebuilder.de>
-#######################################################################
-
-use utf8;
-
-use SL::Menu;
-
-use CGI::Carp qw(fatalsToBrowser);
-use Encode;
-use URI;
-
-use strict;
-
-1;
-
-# end of main
-
-sub display {
- my $form = $main::form;
- my %myconfig = %main::myconfig;
-
- my $charset = $::lx_office_conf{system}->{dbcharset} || 'ISO-8859-1';
- my $callback = $form->unescape($form->{callback});
- $callback = URI->new($callback)->rel($callback) if $callback;
- $callback = "login.pl?action=company_logo" if $callback =~ /^(\.\/)?$/;
-
- my $text = $form->create_http_response('content_type' => 'text/xml',
- 'charset' => $charset)
- . qq|<?xml version="1.0" encoding="${charset}"?>
-<?xml-stylesheet href="xslt/xulmenu.xsl" type="text/xsl"?>
-<!DOCTYPE doc [
-<!ENTITY szlig "| . $::locale->{iconv_utf8}->convert('ß') . qq|">
-<!ENTITY auml "| . $::locale->{iconv_utf8}->convert('ä') . qq|">
-<!ENTITY ouml "| . $::locale->{iconv_utf8}->convert('ö') . qq|">
-<!ENTITY uuml "| . $::locale->{iconv_utf8}->convert('ü') . qq|">
-]>
-
-<doc>
-<name>$myconfig{name}</name>
-<version>$form->{version}</version>
-<callback>$callback</callback>
-<db>$myconfig{dbname}</db>
-
-<favorites>|;
-
- my $fav = $myconfig{favorites};
- my @favorites = split m/;/, $fav;
- foreach (@favorites) {
- $text .= qq|<link name="$_"/>|;
- }
-
- $text .= qq|</favorites>\n|
- . qq|<menu>\n|
- . acc_menu()
- . qq|</menu>\n|
- . qq|</doc>\n|;
-
- print $text;
-}
-
-
-sub acc_menu {
- my $form = $main::form;
-
- my $mainlevel = $form->{level};
- $mainlevel =~ s/$mainlevel--//g;
- my $menu = Menu->new("menu.ini");
-
- $| = 1;
-
- return print_menu($menu);
-}
-
-sub print_menu {
- my ($menu, $parent, $depth) = @_;
- my $html;
-
- my $form = $main::form;
- my %myconfig = %main::myconfig;
-
- die if ($depth * 1 > 5);
-
- my @menuorder;
-
- @menuorder = $menu->access_control(\%myconfig, $parent);
-
- $parent .= "--" if ($parent);
-
- foreach my $item (@menuorder) {
- my $menu_item_id = $item;
- substr($item, 0, length($parent)) = "";
- next if (($item eq "") || ($item =~ /--/));
-
- my $menu_item = $menu->{"${parent}${item}"};
- my $menu_title = $::locale->text($item);
- my $menu_text = $menu_title;
-
- my $target = "main_window";
- $target = $menu_item->{"target"} if ($menu_item->{"target"});
-
- if ($menu_item->{"submenu"} || !defined($menu_item->{"module"}) ||
- ($menu_item->{"module"} eq "menu.pl")) {
-
- my $h = print_menu($menu, "${parent}${item}", $depth * 1 + 1)."\n";
- if (!$parent) {
- $html .= qq|<item name='${menu_text}' id='${menu_item_id}'>${h}</item>\n|;
- } else {
- $html .= qq|<item name='${menu_text}' id='${menu_item_id}'>${h}</item>\n|;
- }
- } else {
- $html .= qq|<item |;
- $html .= $menu->menuitem_XML(\%myconfig, $form, "${parent}$item",
- { "title" => $menu_title,
- "target" => $target });
- $html .= qq| name="${menu_text}" id='${menu_item_id}'/>\n|;
- }
- }
-
- return $html;
-}
+++ /dev/null
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:html="http://www.w3.org/1999/xhtml"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-<xsl:output media-type="application/vnd.mozilla.xul+xml"/>
-<xsl:template match="/">
- <xsl:choose>
- <xsl:when test="system-property('xsl:vendor')='Transformiix'">
-
- <xsl:apply-templates/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:apply-templates mode="html"/>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<xsl:template match="doc" mode="html">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="refresh" content="5;url=menu.pl?action=display"/>
- </head>
- <body style="background-color: #eee; color: #333;">
- <div style="margin-top: 2em; margin-left: auto; margin-right: auto; border: solid 0.1em #f88; width: 30em; background-color:#fff; font-size: 0.8em;font-family: Verdana, Arial, Helvetica; padding: 2em;">
- <h2>XUL-Menü ist aktiviert</h2>
- <h3>Nur der Firefox-Browser mag das XUL-Menü.</h3>
- Wir schalten auf die kompatiblere <a href="menu.pl?action=display">HTML-Variante</a> um.
- <h3>Only the Firefox-Browser likes the XUL-Menu.</h3>
- We switch to the <a href="menu.pl?action=display">HTML-Version</a> now.
- </div>
- </body>
- </html>
-</xsl:template>
-
-<!-- main document structure -->
-<!-- ******************************************************************* -->
-<xsl:template match="doc">
-<xsl:processing-instruction name="xml-stylesheet">href="xslt/style1.css" type="text/css"</xsl:processing-instruction>
- <xsl:variable name="callback"><xsl:value-of select='/doc/callback'/></xsl:variable>
- <xsl:variable name="title">
- LX-Office Version <xsl:value-of select='/doc/version'/>
- - <xsl:value-of select='/doc/name'/>
- - <xsl:value-of select='/doc/db'/>
- </xsl:variable>
- <!-- <xsl:call-template name="style"/>-->
- <window title="{$title}">
- <html:title/>
- <xsl:call-template name="script"/>
- <toolbox>
- <xsl:apply-templates select="menu"/>
- <xsl:apply-templates select="favorites"/>
- </toolbox>
- <hbox flex="1">
- <vbox id="sidebar" style="overflow:hidden">
-
- <xsl:apply-templates mode="tree" select="menu"/>
-
- <xsl:call-template name="ArtikelSuche"/>
- <!--<iframe src="xslt/trans.xml" flex="1" id="uhr"/>-->
- </vbox>
- <splitter state="open" collapse="before" resizeafter="farthest"><grippy/></splitter>
- <browser id="main_window" type="content" src="{$callback}" flex="1" style="border:0px"/>
- </hbox>
- </window>
-</xsl:template>
-<!-- ******************************************************************* -->
-
-
-<!-- the top menu -->
-<!-- ******************************************************************* -->
-<xsl:template match="menu"><menubar id="sample-menubar" flex="1"><xsl:apply-templates/></menubar></xsl:template>
-<!-- ******************************************************************* -->
-
-
-<!-- favorites toolbar -->
-<!-- ******************************************************************* -->
-<xsl:template match="favorites">
- <toolbar id="favoriten" >
- <xsl:call-template name="specialbuttons"/>
- <toolbarseparator/>
- <xsl:for-each select="link">
- <xsl:variable name="name" select="@name"/>
- <xsl:choose>
- <xsl:when test="/*//item[@id=$name]/item">
- <toolbarbutton type="menu" label="{$name}" tooltiptext="A simple popup" link="{/*//item[@id=$name]/@link}" oncommand="openLink(event)">
- <image src="image/icons/24x24/{/*//item[@id=$name]/@id}.png" width="24" height="24" />
- <menupopup id="file-popup">
- <xsl:apply-templates select="/*//item[@id=$name]/*"/>
- </menupopup>
- </toolbarbutton>
- </xsl:when>
- <xsl:otherwise>
- <toolbarbutton label="{$name}" tooltiptext="A simple popup" link="{/*//item[@id=$name]/@link}" oncommand="openLink(event)" lxid="{/*//item[@id=$name]/@id}">
- <image src="image/icons/24x24/{/*//item[@id=$name]/@id}.png" width="24" height="24" />
- </toolbarbutton>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:for-each>
- <toolbarspring flex="1"/>
- <xsl:call-template name="searchbox"/>
-
- </toolbar>
-</xsl:template>
-<!-- ******************************************************************* -->
-
-
-<!-- template for the top menu items
-********************************************************************************* -->
-<xsl:template match="item">
- <xsl:choose>
- <xsl:when test="item">
- <menu id="{@name}_menu" label="{@name}" class="menu-iconic" image="image/icons/16x16/{@id}.png">
- <menupopup id="file-popup">
- <xsl:apply-templates/>
- </menupopup>
- </menu>
- </xsl:when>
- <xsl:otherwise>
- <menuitem target="{@target}" link="{@link}" label="{@name}" oncommand="openLink(event)" class="menuitem-iconic" image="image/icons/16x16/{@id}.png" lxid="{@id}" onclick="openLinkNewTab(event)"/>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-<!-- *************************************************************************** -->
-
-
-<!-- templates for the treeview
-********************************************************************************** -->
-<xsl:template match="menu" mode="tree">
-<toolbar>
-<label value="Hauptmenü"/>
-</toolbar>
- <tree flex="1" onselect="openTreeLink(event)" style="margin:0px;" hidecolumnpicker="true">
- <treecols>
- <treecol hideheader="true" id="menuepunkt" primary="true" flex="1" />
- </treecols>
- <treechildren>
- <xsl:apply-templates mode="tree"/>
- </treechildren>
- </tree>
-</xsl:template>
-
-<xsl:template match="item" mode="tree">
- <xsl:choose>
- <xsl:when test="item">
- <treeitem container="true" open="false">
- <treerow>
- <treecell label="{@name}" src="image/icons/16x16/{@id}.png"/>
- </treerow>
- <treechildren>
- <xsl:apply-templates mode="tree"/>
- </treechildren>
- </treeitem>
- </xsl:when>
- <xsl:otherwise>
- <treeitem link="{@link}">
- <treerow>
- <treecell label="{@name}" src="image/icons/16x16/{@id}.png"/>
- </treerow>
- </treeitem>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-<!-- *************************************************************************** -->
-
-
-<!-- template fuer die uhr
-******************************************************************************** -->
-<xsl:template name="uhr">
-
-</xsl:template>
-<!-- *************************************************************************** -->
-
-
-<!-- scripts
-******************************************************************************** -->
-<xsl:template name="script">
- <html:script type="text/ecmascript">
-
- function openLink(event)
- {
- var path=event.target.getAttribute("link")
- if(event.target.getAttribute("target")=="_top")
- {
- window.location=path
- }
- else
- {
- var bf=document.getElementById("main_window")
- bf.setAttribute("src",path)
- }
- }
-
- function openLinkNewTab(event)
- {
- if(event.button!=1) return
- var path=event.target.getAttribute("link")
- if(event.target.getAttribute("target")=="_top")
- {
- window.location=path
- }
- else
- {
-window.open(path,"_new","")
-
- }
- }
-
-
- function openLinkNewWindow(event)
- {
- var path=event.target.getAttribute("link")
- window.open(path,"_blank","")
- }
-
- function openTreeLink(event)
- {
- var tree=event.target
- var selIndex=tree.currentIndex
- var item=tree.view.getItemAtIndex(selIndex)
- var link=item.getAttribute("link")
- if(link) document.getElementById("main_window").setAttribute("src",link)
- }
-
- function updateClock()
- {
- var d= new Date()
- var sec=d.getSeconds()
- var min=d.getMinutes()
- var std=(d.getHours() % 12 ) + min/60
- document.getElementById("std").setAttribute("transform","rotate("+std*30+",20,20)")
- document.getElementById("min").setAttribute("transform","rotate("+min*6+",20,20)")
- document.getElementById("sec").setAttribute("transform","rotate("+sec*6+",20,20)")
- }
-
- function PrintW()
- {
- document.getElementById("main_window").contentWindow.print()
- }
-
- function doSearch(){
- var t=document.getElementById("searchboxtext").value
- document.getElementById("desc").value=t
- document.getElementById("sb").click()
-
- }
- function checkEnter(event){
- if(event.keyCode==13) doSearch()
- }
- //setInterval("updateClock()",1000)
- function MyGoBack(){
-document.getElementById("main_window").contentWindow.history.back()
-}
- function MyGoForward(){
-document.getElementById("main_window").contentWindow.history.forward()
-}
- </html:script>
-</xsl:template>
-<!-- *************************************************************************** -->
-
-<!-- special buttons ( logout , print, open new window )
-The tooltips, like tooltiptext="Neues Fenster", do not appear in my Firefox/Prism browsers. Why?
-https://developer.mozilla.org/en/XUL_Tutorial/Popup_Menus
-https://developer.mozilla.org/en/XUL/Attribute/tooltiptext
-**************************************************************************** -->
-<xsl:template name="specialbuttons">
- <toolbarbutton image="image/icons/24x24/Batch Printing.png" oncommand="PrintW(event)" tooltiptext="Drucken"/>
- <toolbarbutton image="image/icons/24x24/Neues Fenster.png" tooltiptext="Neues Fenster" link="menuXML.pl?action=display" target="_top" oncommand="openLinkNewWindow(event)"/>
- <toolbarbutton image="image/icons/24x24/Program--Logout.png" link="{/*//item[@id='Program--Logout']/@link}" target="_top" oncommand="openLink(event)" tooltiptext="Abmelden"/>
- <toolbarseparator/>
- <toolbarbutton image="image/icons/24x24/leftarrow_24.png" tooltiptext="Schritt zurück" oncommand="MyGoBack()"/>
- <toolbarbutton image="image/icons/24x24/rightarrow_24.png" tooltiptext="Schritt vor" oncommand="MyGoForward()"/>
-</xsl:template>
-<!-- *************************************************************************** -->
-
-
-<!-- searchbox
-**************************************************************************** -->
-<xsl:template name="searchbox">
-<vbox style="padding-top:2px">
- <hbox>
- <textbox style="font-size:11px;margin-right:0px" width="200px" id="searchboxtext" onkeypress="checkEnter(event)"/>
- <toolbarbutton type="toolbar" width="20" height="20" style="padding:5px !important" image="image/icons/16x16/CRM--Schnellsuche.png" flex="0" oncommand="doSearch()"/>
-</hbox>
-
-</vbox>
-</xsl:template>
-<!-- *************************************************************************** -->
-
-
-<!-- hidden form for article search
-**************************************************************************** -->
-<xsl:template name="ArtikelSuche">
- <form id="aform" method="post" action="ic.pl" xmlns="http://www.w3.org/1999/xhtml" target="main_window" style="font-family:arial;font-size:12px;display:none">
- <input name="partnumber" size="20"/>
- <input name="description" flex="1" id="desc"/>
- <input name="partsgroup" size="20"/>
- <input name="make" size="20"/>
- <input class="submit" type="submit" name="action" value="Weiter" id="sb"/>
- <div style="display:none" >
- <input class="submit" type="submit" name="action" value="Top 100"/>
- <input type="hidden" name="serialnumber" size="20"/>
- <input type="hidden" name="ean" size="20"/>
- <input type="hidden" name="searchitems" value="part"/>
- <input type="hidden" name="title" value="Waren"/>
- <input type="hidden" name="revers" value="0"/>
- <input type="hidden" name="lastsort" value=""/>
- <input type="hidden" name="model" size="20"/>
- <input type="hidden" name="drawing" size="20"/>
- <input type="hidden" name="microfiche" size="20"/>
- <input name="itemstatus" class="radio" type="radio" value="active" checked="true"/>
- <input name="itemstatus" class="radio" type="radio" value="onhand"/>
- <input name="itemstatus" class="radio" type="radio" value="short"/>
- <input name="itemstatus" class="radio" type="radio" value="obsolete"/>
- <input name="itemstatus" class="radio" type="radio" value="orphaned"/>
- <input name="bought" class="checkbox" type="checkbox" value="1"/>
- <input name="sold" class="checkbox" type="checkbox" value="1"/>
- <input name="onorder" class="checkbox" type="checkbox" value="1"/>
- <input name="ordered" class="checkbox" type="checkbox" value="1"/>
- <input name="rfq" class="checkbox" type="checkbox" value="1"/>Anfrage
- <input name="quoted" class="checkbox" type="checkbox" value="1"/>Angeboten
- <input type="hidden" name="transdatefrom" id="transdatefrom" size="11" title="dd.mm.yy"/>
- <input type="button" name="transdatefrom" id="trigger1" value="?"/>
- <input name="transdateto" id="transdateto" size="11" title="dd.mm.yy"/>
- <input type="button" name="transdateto" id="trigger2" value="?"/>
- <input name="l_partnumber" class="checkbox" type="checkbox" value="Y" checked="true"/>Artikelnummer
- <input name="l_description" class="checkbox" type="checkbox" value="Y" checked="true"/>Artikelbeschreibung
- <input name="l_serialnumber" class="checkbox" type="checkbox" value="Y"/>Seriennummer
- <input name="l_unit" class="checkbox" type="checkbox" value="Y" checked="true"/>Maszeinheit
- <input name="l_listprice" class="checkbox" type="checkbox" value="Y"/>Listenpreis
- <input name="l_sellprice" class="checkbox" type="checkbox" value="Y" checked="true"/>Verkaufspreis
- <input name="l_lastcost" class="checkbox" type="checkbox" value="Y" checked="true"/>Einkaufspreis
- <input name="l_linetotal" class="checkbox" type="checkbox" value="Y" checked="true"/>Zeilensumme
- <input name="l_priceupdate" class="checkbox" type="checkbox" value="Y"/>Erneuert am
- <input name="l_bin" class="checkbox" type="checkbox" value="Y"/>Lagerplatz
- <input name="l_rop" class="checkbox" type="checkbox" value="Y"/>Mindestlagerbestand
- <input name="l_weight" class="checkbox" type="checkbox" value="Y"/>Gewicht
- <input name="l_image" class="checkbox" type="checkbox" value="Y"/>Grafik
- <input name="l_drawing" class="checkbox" type="checkbox" value="Y"/>Zeichnung
- <input name="l_microfiche" class="checkbox" type="checkbox" value="Y"/>Mikrofilm
- <input name="l_partsgroup" class="checkbox" type="checkbox" value="Y"/>Warengruppe
- <input name="l_subtotal" class="checkbox" type="checkbox" value="Y"/>Zwischensumme
- <input name="l_soldtotal" class="checkbox" type="checkbox" value="Y"/>Verkaufte Anzahl
- <input name="l_deliverydate" class="checkbox" type="checkbox" value="Y"/>Lieferdatum
- <input type="hidden" name="nextsub" value="generate_report"/>
- <input type="hidden" name="revers" value="0"/>
- <input type="hidden" name="lastsort" value=""/>
- <input type="hidden" name="sort" value="description"/>
- <input type="hidden" name="ndxs_counter" value="0"/>
- </div>
- </form>
-</xsl:template>
-<!-- *************************************************************************** -->
-</xsl:stylesheet>