home *** CD-ROM | disk | FTP | other *** search
/ Image Master / L80.iso / Net / websuite / websuite.exe / APPS.FG_ / APPS.FG
Encoding:
Text File  |  1997-12-08  |  5.0 KB  |  219 lines

  1.  
  2. FUNCTION DisplayApps( desk, updateflag )
  3.  
  4.     local str, keys, keycnt, key, x, k, i, items, itemcnt, item, data
  5.  
  6.     // Application list
  7.     
  8.     if ( type( updateflag ) != "N" )
  9.         updateflag = 0
  10.     end
  11.  
  12.     
  13.     str =  "<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=1>\r\n"
  14.     str += "<TR VALIGN=top>\r\n"
  15.     str += "<TD>\r\n"
  16.     
  17.     keys = desk.data.GetString( "data", "appCats" )
  18.     keycnt = chrcount( "|", keys )
  19.     
  20.     x = 1
  21.     for ( k=1; k<=keycnt; k++ )
  22.     
  23.         if ( x > 4 )
  24.             x = 1
  25.             str += "</TD>\r\n"
  26.             str += "</TR>\r\n"
  27.             str += "<TR VALIGN=top>\r\n"
  28.             str += "<TD>\r\n"
  29.         end
  30.  
  31.         key = strextract( keys, "|", k )
  32.         if ( strempty( key ) )
  33.             continue
  34.         end
  35.         str += "<b><FONT SIZE=2><br>" + key + "</FONT><br></b>\r\n"
  36.         
  37.         items = desk.data.GetItems( "app" + key )
  38.         itemcnt = chrcount( ";", items ) + 1
  39.         for ( i=1; i<=itemcnt; i++ )
  40.             item = strextract( items, ";", i )
  41.             data = desk.data.GetString( "app" + key, item )
  42.             if ( strempty( data ) )
  43.                 continue
  44.             end
  45.             if ( updateflag )
  46.                 str += "<a href=\"_apps.ap?cat=" + key + "&item=" + item + "\"><FONT SIZE=2>" + strextract( data, "|", 1 ) + "</FONT></a><br>\r\n"
  47.             else
  48.                 str += "<a href=\"apprun.ap?cat=" + key + "&item=" + item + "\"><FONT SIZE=2>" + strextract( data, "|", 1 ) + "</FONT></a><br>\r\n"
  49.             end
  50.         end
  51.  
  52.         str += "</TD><TD>\r\n"
  53.  
  54.         x++
  55.     end
  56.  
  57.     str += " </TR>\r\n"
  58.        str += "</TABLE>\r\n"
  59.     str += "<BR>\r\n"
  60.  
  61.        return( str )
  62.        
  63. END
  64.  
  65.  
  66.  
  67. CLASS AppItem
  68.   PUBLIC:
  69.     local desk, cat, item
  70.     local desc, action, options, password, startdir, image
  71.     
  72.     METHOD new( desk, cat, item )
  73.         ::desk = desk
  74.         ::cat = cat
  75.         ::item = item
  76.         if ( strempty( cat ) )
  77.             ::cat = strextract( ::desk.data.getstring( "data", "appcats", "" ), "|", 1 )
  78.         end
  79.         if ( cat != "_system_" )
  80.             if ( 0 + ::item < 1 )
  81.                 ::item = "1"
  82.             end
  83.         end
  84.         return( ::load( ) )
  85.     END
  86.  
  87.  
  88.     METHOD createnew( )
  89.         local items, cnt
  90.         items = ::desk.data.GetItems( "app" + ::cat )
  91.         cnt = chrcount( ";", items ) + 1
  92.         ::item = "" + ( 1 + strextract( items, ";", cnt ) )
  93.         ::desc = "New App"
  94.         ::action = ""
  95.         ::options = 0
  96.         ::password = ""
  97.         ::startdir = ""
  98.         ::image = ""
  99.         return( ::save( ) )
  100.     END
  101.  
  102.  
  103.     METHOD delete( )
  104.         local rc, items
  105.         rc = ::desk.data.setstring( "app" + ::cat, "" + ::item, "" )
  106.         items = ::desk.data.GetItems( "app" + ::cat )
  107.         ::item = strextract( items, ";", 1 )
  108.         ::load( )
  109.         return( rc )
  110.     END
  111.  
  112.  
  113.     METHOD Display( )
  114.         return( "<center><FONT SIZE=5><a href=\"apprun.ap?cat=" + ::cat + "&item=" + ::item + "\">" + ::desc + "</FONT></a></CENTER><br>\r\n" )
  115.     END
  116.     
  117.     METHOD load( )
  118.         local data
  119.  
  120.         data = ::desk.data.getstring( "app" + ::cat, "" + ::item, "" )
  121.         if ( strempty( data ) )
  122.             return( 0 )
  123.         end
  124.         ::desc = strextract( data, "|", 1 )
  125.         ::action = strextract( data, "|", 2 )
  126.         ::options = 0 + strextract( data, "|", 3 )
  127.         ::password = strextract( data, "|", 4 )
  128.         ::startdir = strextract( data, "|", 5 )
  129.         ::image = strextract( data, "|", 6 )
  130.         
  131.         return( 1 )
  132.     END
  133.  
  134.  
  135.     METHOD run( params )
  136.  
  137.         local showflag, cmd, rc
  138.  
  139.         if ( type( params ) != "C" )
  140.             params = ""
  141.         end
  142.  
  143.         // check for password
  144.         if ( ! strempty( ::password ) )
  145.             if ( ! ::desk.session.access( ::desc, "app" + ::cat + "_" + ::item, ::password ) )
  146.                 return( -1 )
  147.             end
  148.         end
  149.  
  150.         // check for local or remote access        
  151.         if ( ( ! ::desk.session.IsLocal ) && ( ! ( ::options & 32 ) ) )
  152.             ::desk.session.response( "<H3>Sorry, the application \"" + ::desc + "\" does not support remote access.</H2><a href=\"" + ::desk.session.data( "referer" ) + "\">back</a>..." )
  153.             return( -1 )
  154.         end
  155.  
  156.         cmd = lfnLongToShort( ::action ) + ( strempty( params ) ? "" : " " + params )
  157.  
  158.         if ( ::options & 1 )
  159.             // send command to browser
  160.             //BrowserLoad( cmd )
  161.             ::desk.session.redir( cmd )
  162.             rc = -1
  163.         else
  164.             if ( ::options & 2 )
  165.                 showflag = 1
  166.             elseif ( ::options & 4 )
  167.                 showflag = 3
  168.             elseif ( ::options & 8 )
  169.                 showflag = 2
  170.             elseif ( ::options & 16 )
  171.                 showflag = 0
  172.             else
  173.                 showflag = -1
  174.             end
  175.  
  176.             if ( ! strempty( ::startdir ) )
  177.                 if ( showflag > -1 )
  178.                     rc = smartrun( cmd, ::startdir, showflag )
  179.                 else
  180.                     rc = smartrun( cmd, ::startdir )
  181.                 end
  182.             else
  183.                 if ( showflag > -1 )
  184.                     rc = smartrun( cmd, showflag )
  185.                 else
  186.                     rc = smartrun( cmd )
  187.                 end
  188.             end
  189.         end
  190.         return( rc )
  191.     END
  192.  
  193.  
  194.     METHOD save( )
  195.         local str
  196.         str = ::desc + "|" + ::action + "|" + ::options + "|" + ::password + "|" + ::startdir + "|" + ::image
  197.         return( ::desk.data.setstring( "app" + ::cat, "" + ::item, str ) )
  198.     END
  199.  
  200.  
  201.     METHOD UpdateFromForm( )
  202.         ::desc = ::desk.session.var( "desc" )
  203.         ::action = ::desk.session.var( "action" )
  204.         ::startdir = ::desk.session.var( "startdir" )
  205.         ::password = ::desk.session.var( "password" )
  206.         ::options = 0 + ::desk.session.var( "options" )
  207.         if ( ::desk.session.var( "RemoteAccess" ) == "32" )
  208.             ::options |= 32
  209.         end
  210.         
  211.         return( ::save( ) )    
  212.     END
  213.  
  214.  
  215. END
  216.  
  217.  
  218.  
  219.