- Graph DCI configuration improved
authorVictor Kirhenshtein <victor@netxms.org>
Wed, 24 Jan 2007 08:26:18 +0000 (08:26 +0000)
committerVictor Kirhenshtein <victor@netxms.org>
Wed, 24 Jan 2007 08:26:18 +0000 (08:26 +0000)
- Database schema updated: added "system" object's attribute and tables for preconfigured graphs
- Other minor changes

18 files changed:
.gitattributes
doc/internal/build.w64 [new file with mode: 0644]
doc/internal/db_format_change.txt
include/netxms-version.h
include/netxmsdb.h
sql/schema.in
src/console/win32/AddDCIDlg.cpp
src/console/win32/AddDCIDlg.h
src/console/win32/GraphDataPage.cpp
src/console/win32/GraphDataPage.h
src/console/win32/globals.h
src/console/win32/nxcon.clw
src/console/win32/nxcon.rc
src/console/win32/resource.h
src/console/win32/tools.cpp
src/install/windows/netxms.iss
src/server/tools/nxdbmgr/nxdbmgr.dsp
src/server/tools/nxdbmgr/upgrade.cpp

index 5148612..da58125 100644 (file)
@@ -144,6 +144,7 @@ contrib/startup/redhat/netxmsd -text
 contrib/startup/redhat/nxagentd -text
 doc/Makefile.am -text
 doc/internal/Makefile.am -text
+doc/internal/build.w64 -text
 doc/internal/coding_style.txt -text
 doc/internal/db_format_change.txt -text
 doc/internal/event_code_ranges.txt -text
diff --git a/doc/internal/build.w64 b/doc/internal/build.w64
new file mode 100644 (file)
index 0000000..b6d5194
--- /dev/null
@@ -0,0 +1,57 @@
+Building NetXMS for 64-bit Windows
+
+Configuring Visual Studio 6 for x64:
+
+Out of the box Visual Studio 6 (let's abbreviate it as VS6) wants to load its
+own Win32 32-bit toolchain. You can easily configure command-line options to
+launch it using the proper AMD64 64-bit toolchain, using the /USEENV option to
+select a specific user environment that's been predefined using a batch file
+that's came with the Microsoft Windows platform SDK. That batch file sets PATH,
+INCLUDE and LIB environment variables to point to the correct compilers,
+libraries and so-on.
+To tell VS6 to load up the 64-bit toolchain, execute the statements
+
+call "C:\Program Files\SDK\SetEnv.Bat" /AMD64 /RETAIL
+start "" "C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\MSDEV.EXE" /useenv
+
+To resume working with the 32-bit toolchain, quit VS6 and then use the following statements to relaunch the IDE:
+
+call "C:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT"
+start "" "C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\MSDEV.EXE" /useenv
+
+Once you've launched VS6 with the proper environment, you'll need to build the
+right type of release and debug project configurations for the AMD64 platform.
+Here are the steps:
+Step 1: Select the Build menu, select Configurations, then click Add.
+Step 2: In the "Configuration" text field, add a name, for example
+        "Release AMD64" or "Debug AMD64," and choose from the list "Copy 
+        settings from" the corresponding configuration for the Win32 platform,
+        such as "Win32 Release" and "Win32 Debug."
+Step 3: Repeat step 2 for the debug configuration and any other configuration
+        in the project, so that for each Win32 configuration there is a
+        corresponding one for the AMD64 platform. Figure 2 shows what the
+        configurations will look like.
+You may also need to set other options for the AMD64 project. For each
+sub-project, select the Project menu, then select the Setting option:
+In all AMD64 configurations, under the General tab, change the output
+directories in order to avoid confusing the environment by mixing AMD64 and
+Win32 object files. 
+In all AMD64 configurations, under the Link tab, append /machine:AMD64 to the
+options list. VS6 won't let you remove the /machine:I386 option, but as long as
+/machine:AMD64 comes after it, everything is fine. 
+In all AMD64 configurations, under the C/C++ tab, in the General category, make
+sure that if any debug info is enabled, it is not "Program Database for Edit
+and Continue." 
+In the AMD64 debug configuration, under the C/C++ tab, add /Wp64 to the options
+list to help to make the source code 64-bit compliant.
+Now that VS6 is configured properly.
+
+
+For Visual Studio 2005:
+
+You should have 64-bit OpenSSL DLLs, with correct manifest file embedded.
+To embed manifest file produced by compiler into DLLs, use the following
+commands:
+
+mt.exe -manifest libeay32.dll.manifest -outputresource:libeay32.dll;2
+mt.exe -manifest ssleay32.dll.manifest -outputresource:ssleay32.dll;2
index cc1022a..b57f8cd 100644 (file)
@@ -1,3 +1,28 @@
+*************
+* 57 ==> 58 *
+*************
+
+- Added column "is_system" to table "object_properties":
+       ALTER TABLE object_properties ADD is_system integer;
+       UPDATE object_properties SET is_system=0;
+- New tables added:
+       CREATE TABLE graphs
+       (
+               graph_id integer not null,
+               owner_id integer not null,
+               name varchar(255) not null,
+               config SQL_TEXT not null,
+               PRIMARY KEY(graph_id)
+       ) TABLE_TYPE;
+       CREATE TABLE graph_acl
+       (
+               graph_id integer not null,
+               user_id integer not null,
+               user_rights integer not null,
+               PRIMARY KEY(graph_id,user_id)
+       ) TABLE_TYPE;
+
+
 *************
 * 56 ==> 57 *
 *************
index 13beb21..0d5dda9 100644 (file)
@@ -1,7 +1,7 @@
-/* $Id: netxms-version.h,v 1.107 2007-01-18 23:32:19 victor Exp $ */
+/* $Id: netxms-version.h,v 1.108 2007-01-24 08:26:16 victor Exp $ */
 /* 
 ** NetXMS - Network Management System
-** Copyright (C) 2003, 2004, 2005, 2006 Victor Kirhenshtein
+** Copyright (C) 2003, 2004, 2005, 2006, 2007 Victor Kirhenshtein
 **
 ** 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
@@ -33,7 +33,7 @@
 #define NETXMS_VERSION_MINOR        2
 #define NETXMS_VERSION_BUILD        16
 #define NETXMS_VERSION_HOTFIX                  0
-#define NETXMS_VERSION_STRING       _T("0.2.16-rc2")
+#define NETXMS_VERSION_STRING       _T("0.2.16-rc4")
 
 
 //
index d5f960c..989d26b 100644 (file)
@@ -1,7 +1,7 @@
-/* $Id: netxmsdb.h,v 1.59 2007-01-14 00:11:29 victor Exp $ */
+/* $Id: netxmsdb.h,v 1.60 2007-01-24 08:26:16 victor Exp $ */
 /* 
 ** NetXMS - Network Management System
-** Copyright (C) 2003, 2004, 2005, 2006 Victor Kirhenshtein
+** Copyright (C) 2003, 2004, 2005, 2006, 2007 Victor Kirhenshtein
 **
 ** 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
@@ -24,6 +24,6 @@
 #ifndef _netxmsdb_h
 #define _netxmsdb_h
 
-#define DB_FORMAT_VERSION      57
+#define DB_FORMAT_VERSION      58
 
 #endif
index cb42bc0..61d384b 100644 (file)
@@ -109,6 +109,7 @@ CREATE TABLE object_properties
        name varchar(63) not null,
        status integer not null,
        is_deleted integer not null,
+       is_system integer not null,
        image_id integer,
        last_modified integer not null,
        inherit_access_rights integer not null,
@@ -1040,3 +1041,30 @@ CREATE TABLE address_lists
 ) TABLE_TYPE;
 
 CREATE INDEX idx_address_lists_list_type ON address_lists(list_type);
+
+
+/*
+** Graphs
+*/
+
+CREATE TABLE graphs
+(
+       graph_id integer not null,
+       owner_id integer not null,
+       name varchar(255) not null,
+       config SQL_TEXT not null,
+       PRIMARY KEY(graph_id)
+) TABLE_TYPE;
+
+
+/*
+** Graph access lists
+*/
+
+CREATE TABLE graph_acl
+(
+       graph_id integer not null,
+       user_id integer not null,
+       user_rights integer not null,
+       PRIMARY KEY(graph_id,user_id)
+) TABLE_TYPE;
index 61f7b13..14c6ca4 100644 (file)
@@ -36,6 +36,7 @@ void CAddDCIDlg::DoDataExchange(CDataExchange* pDX)
 BEGIN_MESSAGE_MAP(CAddDCIDlg, CDialog)
        //{{AFX_MSG_MAP(CAddDCIDlg)
        ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST_NODES, OnItemchangedListNodes)
+       ON_NOTIFY(NM_DBLCLK, IDC_LIST_DCI, OnDblclkListDci)
        //}}AFX_MSG_MAP
 END_MESSAGE_MAP()
 
@@ -58,7 +59,7 @@ BOOL CAddDCIDlg::OnInitDialog()
    m_wndListNodes.SetImageList(&m_imageList, LVSIL_SMALL);
    m_wndListNodes.GetClientRect(&rect);
    m_wndListNodes.InsertColumn(0, _T("Name"), LVCFMT_LEFT, rect.right - GetSystemMetrics(SM_CXVSCROLL));
-   m_wndListNodes.SetExtendedStyle(LVS_EX_FULLROWSELECT);
+   m_wndListNodes.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_LABELTIP);
 
    // Fill in node list
    NXCLockObjectIndex(g_hSession);
@@ -76,7 +77,7 @@ BOOL CAddDCIDlg::OnInitDialog()
    // Setup DCI list
    m_wndListDCI.GetClientRect(&rect);
    m_wndListDCI.InsertColumn(0, _T("Parameter"), LVCFMT_LEFT, rect.right - GetSystemMetrics(SM_CXVSCROLL));
-   m_wndListDCI.SetExtendedStyle(LVS_EX_FULLROWSELECT);
+   m_wndListDCI.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_LABELTIP);
        
        return TRUE;
 }
@@ -143,3 +144,15 @@ void CAddDCIDlg::OnOK()
    MessageBox(_T("You should select data collection item before pressing OK"),
               _T("Warning"), MB_OK | MB_ICONEXCLAMATION);
 }
+
+
+//
+// Handler for double click in DCI list
+//
+
+void CAddDCIDlg::OnDblclkListDci(NMHDR* pNMHDR, LRESULT* pResult) 
+{
+       if (m_wndListDCI.GetSelectedCount() > 0)
+               PostMessage(WM_COMMAND, IDOK, 0);
+       *pResult = 0;
+}
index 6a5fb5c..8f54892 100644 (file)
@@ -43,6 +43,7 @@ protected:
        virtual BOOL OnInitDialog();
        afx_msg void OnItemchangedListNodes(NMHDR* pNMHDR, LRESULT* pResult);
        virtual void OnOK();
+       afx_msg void OnDblclkListDci(NMHDR* pNMHDR, LRESULT* pResult);
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
 };
index 616c867..cf6defa 100644 (file)
 static char THIS_FILE[] = __FILE__;
 #endif
 
+
+//
+// Callback for list sorting function
+//
+
+static int CALLBACK CBSortListItems(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
+{
+       return ((CGraphDataPage *)lParamSort)->CompareListItems(lParam1, lParam2);
+}
+
+
 /////////////////////////////////////////////////////////////////////////////
 // CGraphDataPage property page
 
@@ -22,10 +33,15 @@ CGraphDataPage::CGraphDataPage() : CPropertyPage(CGraphDataPage::IDD)
        //{{AFX_DATA_INIT(CGraphDataPage)
                // NOTE: the ClassWizard will add member initialization here
        //}}AFX_DATA_INIT
+
+       m_nSortMode = theApp.GetProfileInt(_T("GraphDataPage"), _T("SortMode"), 0);
+       m_nSortDir = theApp.GetProfileInt(_T("GraphDataPage"), _T("SortDir"), 1);
 }
 
 CGraphDataPage::~CGraphDataPage()
 {
+       theApp.WriteProfileInt(_T("GraphDataPage"), _T("SortMode"), m_nSortMode);
+       theApp.WriteProfileInt(_T("GraphDataPage"), _T("SortDir"), m_nSortDir);
 }
 
 void CGraphDataPage::DoDataExchange(CDataExchange* pDX)
@@ -41,6 +57,10 @@ BEGIN_MESSAGE_MAP(CGraphDataPage, CPropertyPage)
        //{{AFX_MSG_MAP(CGraphDataPage)
        ON_BN_CLICKED(IDC_BUTTON_DELETE, OnButtonDelete)
        ON_BN_CLICKED(IDC_BUTTON_ADD, OnButtonAdd)
+       ON_NOTIFY(LVN_COLUMNCLICK, IDC_LIST_DCI, OnColumnclickListDci)
+       ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST_DCI, OnItemchangedListDci)
+       ON_BN_CLICKED(IDC_BUTTON_DOWN, OnButtonDown)
+       ON_BN_CLICKED(IDC_BUTTON_UP, OnButtonUp)
        //}}AFX_MSG_MAP
 END_MESSAGE_MAP()
 
@@ -54,6 +74,7 @@ END_MESSAGE_MAP()
 BOOL CGraphDataPage::OnInitDialog() 
 {
    DWORD i;
+   LVCOLUMN lvCol;
 
        CPropertyPage::OnInitDialog();
 
@@ -65,12 +86,26 @@ BOOL CGraphDataPage::OnInitDialog()
    m_wndListCtrl.InsertColumn(4, _T("Description"), LVCFMT_LEFT, 150);
        m_wndListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
 
+   m_imageList.Create(16, 16, ILC_COLOR24 | ILC_MASK, 2, 1);
+   m_imageList.Add(theApp.LoadIcon(IDI_SORT_DOWN));
+   m_imageList.Add(theApp.LoadIcon(IDI_SORT_UP));
+       m_wndListCtrl.GetHeaderCtrl()->SetImageList(&m_imageList);
+
    // Add items to list control
    for(i = 0; i < m_dwNumItems; i++)
-   {
                AddListItem(i);
-   }
+       m_wndListCtrl.SortItems(CBSortListItems, (LPARAM)this);
        
+   // Mark sorting column
+   lvCol.mask = LVCF_IMAGE | LVCF_FMT;
+   lvCol.fmt = LVCFMT_BITMAP_ON_RIGHT | LVCFMT_IMAGE | LVCFMT_LEFT;
+   lvCol.iImage = (m_nSortDir == -1) ? 0 : 1;
+   m_wndListCtrl.SetColumn(m_nSortMode, &lvCol);
+
+       EnableDlgItem(this, IDC_BUTTON_DELETE, FALSE);
+       EnableDlgItem(this, IDC_BUTTON_UP, FALSE);
+       EnableDlgItem(this, IDC_BUTTON_DOWN, FALSE);
+
        return TRUE;
 }
 
@@ -119,6 +154,12 @@ void CGraphDataPage::OnButtonAdd()
        DWORD dwResult;
        NXC_DCI dci;
 
+       if (m_dwNumItems == MAX_GRAPH_ITEMS)
+       {
+               MessageBox(_T("You cannot add more than 16 items to one graph"), _T("Warning"), MB_OK | MB_ICONEXCLAMATION);
+               return;
+       }
+
        if (dlg.DoModal() == IDOK)
        {
                dwResult = DoRequestArg4(NXCGetDCIInfo, g_hSession, (void *)dlg.m_dwNodeId,
@@ -128,6 +169,7 @@ void CGraphDataPage::OnButtonAdd()
                        m_ppItems[m_dwNumItems] = new DCIInfo(dlg.m_dwNodeId, &dci);
                        AddListItem(m_dwNumItems);
                        m_dwNumItems++;
+                  m_wndListCtrl.SortItems(CBSortListItems, (DWORD)this);
                }
                else
                {
@@ -159,3 +201,173 @@ void CGraphDataPage::AddListItem(DWORD dwIndex)
    m_wndListCtrl.SetItemText(iItem, 3, m_ppItems[dwIndex]->m_pszParameter);
    m_wndListCtrl.SetItemText(iItem, 4, m_ppItems[dwIndex]->m_pszDescription);
 }
+
+
+//
+// Compare two list items
+//
+
+int CGraphDataPage::CompareListItems(int nItem1, int nItem2)
+{
+       int nResult;
+       NXC_OBJECT *pNode1, *pNode2;
+
+       switch(m_nSortMode)
+       {
+               case 0:         // Position
+                       nResult = COMPARE_NUMBERS(nItem1, nItem2);
+                       break;
+               case 1:         // Node
+                       pNode1 = NXCFindObjectById(g_hSession, m_ppItems[nItem1]->m_dwNodeId);
+                       pNode2 = NXCFindObjectById(g_hSession, m_ppItems[nItem2]->m_dwNodeId);
+                       nResult = _tcscmp((pNode1 != NULL) ? pNode1->szName : _T("<unknown>"),
+                                         (pNode2 != NULL) ? pNode2->szName : _T("<unknown>"));
+                       break;
+               case 2:         // Type
+                       nResult = _tcscmp(g_pszItemOrigin[m_ppItems[nItem1]->m_iSource], g_pszItemOrigin[m_ppItems[nItem2]->m_iSource]);
+                       break;
+               case 3:         // Parameter
+                       nResult = _tcsicmp(m_ppItems[nItem1]->m_pszParameter, m_ppItems[nItem2]->m_pszParameter);
+                       break;
+               case 4:         // Description
+                       nResult = _tcsicmp(m_ppItems[nItem1]->m_pszDescription, m_ppItems[nItem2]->m_pszDescription);
+                       break;
+               default:
+                       nResult = 0;
+                       break;
+       }
+
+       return nResult * m_nSortDir;
+}
+
+
+//
+// Handler for list control column click
+//
+
+void CGraphDataPage::OnColumnclickListDci(LPNMHDR pNMHDR, LRESULT *pResult)
+{
+   LVCOLUMN lvCol;
+
+   // Unmark old sorting column
+   lvCol.mask = LVCF_FMT;
+   lvCol.fmt = LVCFMT_LEFT;
+   m_wndListCtrl.SetColumn(m_nSortMode, &lvCol);
+
+   // Change current sort mode and resort list
+   if (m_nSortMode == ((LPNMLISTVIEW)pNMHDR)->iSubItem)
+   {
+      // Same column, change sort direction
+      m_nSortDir = -m_nSortDir;
+   }
+   else
+   {
+      // Another sorting column
+      m_nSortMode = ((LPNMLISTVIEW)pNMHDR)->iSubItem;
+   }
+   m_wndListCtrl.SortItems(CBSortListItems, (DWORD)this);
+
+   // Mark new sorting column
+   lvCol.mask = LVCF_IMAGE | LVCF_FMT;
+   lvCol.fmt = LVCFMT_BITMAP_ON_RIGHT | LVCFMT_IMAGE | LVCFMT_LEFT;
+   lvCol.iImage = (m_nSortDir == -1) ? 0 : 1;
+   m_wndListCtrl.SetColumn(((LPNMLISTVIEW)pNMHDR)->iSubItem, &lvCol);
+   
+   *pResult = 0;
+}
+
+
+//
+// Handler for list control item changes
+//
+
+void CGraphDataPage::OnItemchangedListDci(NMHDR* pNMHDR, LRESULT* pResult) 
+{
+       NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
+
+       EnableDlgItem(this, IDC_BUTTON_DELETE, m_wndListCtrl.GetSelectedCount() > 0);
+       EnableDlgItem(this, IDC_BUTTON_UP, m_wndListCtrl.GetSelectedCount() == 1);
+       EnableDlgItem(this, IDC_BUTTON_DOWN, m_wndListCtrl.GetSelectedCount() == 1);
+       
+       *pResult = 0;
+}
+
+
+//
+// Handler for "Move down" button
+//
+
+void CGraphDataPage::OnButtonDown() 
+{
+       int nItem, nItem2;
+       DWORD dwIndex;
+       LVFINDINFO lvfi;
+       DCIInfo *pTemp;
+       TCHAR szBuffer[32];
+
+       nItem = m_wndListCtrl.GetSelectionMark();
+       if ((nItem == -1) || (m_dwNumItems < 2))
+               return;
+
+       dwIndex = m_wndListCtrl.GetItemData(nItem);
+       if (dwIndex < m_dwNumItems - 1)
+       {
+               lvfi.flags = LVFI_PARAM;
+               lvfi.lParam = dwIndex + 1;
+               nItem2 = m_wndListCtrl.FindItem(&lvfi);
+               if (nItem2 != -1)
+               {
+                       _stprintf(szBuffer, _T("%d"), dwIndex + 1);
+                       m_wndListCtrl.SetItemText(nItem2, 0, szBuffer);
+                       m_wndListCtrl.SetItemData(nItem2, dwIndex);
+                       _stprintf(szBuffer, _T("%d"), dwIndex + 2);
+                       m_wndListCtrl.SetItemText(nItem, 0, szBuffer);
+                       m_wndListCtrl.SetItemData(nItem, dwIndex + 1);
+                       pTemp = m_ppItems[dwIndex];
+                       m_ppItems[dwIndex] = m_ppItems[dwIndex + 1];
+                       m_ppItems[dwIndex + 1] = pTemp;
+                       if (m_nSortMode == 0)   // Resort items if current sorting mode is "by position"
+                          m_wndListCtrl.SortItems(CBSortListItems, (DWORD)this);
+               }
+       }
+}
+
+
+//
+// Handler for "Move up" button
+//
+
+void CGraphDataPage::OnButtonUp() 
+{
+       int nItem, nItem2;
+       DWORD dwIndex;
+       LVFINDINFO lvfi;
+       DCIInfo *pTemp;
+       TCHAR szBuffer[32];
+
+       nItem = m_wndListCtrl.GetSelectionMark();
+       if (nItem == -1)
+               return;
+
+       dwIndex = m_wndListCtrl.GetItemData(nItem);
+       if (dwIndex > 0)
+       {
+               lvfi.flags = LVFI_PARAM;
+               lvfi.lParam = dwIndex - 1;
+               nItem2 = m_wndListCtrl.FindItem(&lvfi);
+               if (nItem2 != -1)
+               {
+                       _stprintf(szBuffer, _T("%d"), dwIndex + 1);
+                       m_wndListCtrl.SetItemText(nItem2, 0, szBuffer);
+                       m_wndListCtrl.SetItemData(nItem2, dwIndex);
+                       _stprintf(szBuffer, _T("%d"), dwIndex);
+                       m_wndListCtrl.SetItemText(nItem, 0, szBuffer);
+                       m_wndListCtrl.SetItemData(nItem, dwIndex - 1);
+                       pTemp = m_ppItems[dwIndex];
+                       m_ppItems[dwIndex] = m_ppItems[dwIndex - 1];
+                       m_ppItems[dwIndex - 1] = pTemp;
+                       if (m_nSortMode == 0)   // Resort items if current sorting mode is "by position"
+                          m_wndListCtrl.SortItems(CBSortListItems, (DWORD)this);
+               }
+       }
+}
index 438e921..ee6f3b7 100644 (file)
@@ -17,6 +17,7 @@ class CGraphDataPage : public CPropertyPage
 
 // Construction
 public:
+       int CompareListItems(int nItem1, int nItem2);
        DWORD m_dwNumItems;
    DCIInfo *m_ppItems[MAX_GRAPH_ITEMS];
        CGraphDataPage();
@@ -38,12 +39,19 @@ public:
 
 // Implementation
 protected:
+       int m_nSortDir;
+       int m_nSortMode;
+       CImageList m_imageList;
        void AddListItem(DWORD dwIndex);
        // Generated message map functions
        //{{AFX_MSG(CGraphDataPage)
        virtual BOOL OnInitDialog();
        afx_msg void OnButtonDelete();
        afx_msg void OnButtonAdd();
+       afx_msg void OnColumnclickListDci(LPNMHDR pNMHDR, LRESULT* pResult);
+       afx_msg void OnItemchangedListDci(NMHDR* pNMHDR, LRESULT* pResult);
+       afx_msg void OnButtonDown();
+       afx_msg void OnButtonUp();
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
 
index 2d73f36..c55a9a3 100644 (file)
@@ -246,6 +246,7 @@ public:
    // Methods
 public:
    DCIInfo();
+   DCIInfo(DCIInfo *pSrc);
    DCIInfo(DWORD dwNodeId, NXC_DCI *pItem);
    ~DCIInfo();
 };
index cfb456c..9777b90 100644 (file)
@@ -17,20 +17,20 @@ Class9=CMapView
 
 ResourceCount=193
 Resource1=IDD_CP_GENERAL (English (U.S.))
-Resource2=IDD_NEW_ACTION
+Resource2=IDD_CHANGE_IP
 Resource3=IDD_DCI_DATA_EXPORT (English (U.S.))
-Resource4=IDD_OBJECT_VPNC_GENERAL
-Resource5=IDD_EDIT_TRAP_ARG
+Resource4=IDR_MAINFRAME
+Resource5=IDD_ADD_DCI
 Class2=CChildView
 Class5=CAboutDlg
 Class6=CControlPanel
 Class8=CMapFrame
 Class10=CLoginDialog
-Resource6=IDD_CREATE_NODE
+Resource6=IDD_SUBMAP_BKGND
 Class11=CProgressDialog
-Resource7=IDD_EDIT_EVENT
+Resource7=IDD_SELECT_INTERNAL_ITEM
 Class12=CAddrEntryDlg
-Resource8=IDD_CP_GENERAL
+Resource8=IDD_OBJTOOL_OPTIONS
 Class13=CObjectPropDlg
 Resource9=IDD_THRESHOLD (English (U.S.))
 Resource10=IDD_SELECT_OBJECT (English (U.S.))
@@ -46,13 +46,13 @@ Resource17=IDD_NEW_USER (English (U.S.))
 Class16=CDebugFrame
 Resource18=IDD_NEW_ACTION (English (U.S.))
 Resource19=IDD_OBJECT_PROPERTIES (English (U.S.))
-Resource20=IDA_DC_EDITOR
+Resource20=IDD_GRAPH_PROP_SETTINGS
 Class17=CObjectPreview
 Resource21=IDA_OBJECT_BROWSER (English (U.S.))
 Class18=CToolBox
 Class19=CObjectInfoBox
 Class20=CObjectSearchBox
-Resource22=IDD_CHANGE_IP
+Resource22=IDA_TRAP_EDITOR
 Class21=CEditBox
 Class22=COPGeneral
 Class23=CNodePropsGeneral
@@ -63,28 +63,28 @@ Resource24=IDM_CONTEXT
 Class26=CRequestProcessingDlg
 Resource25=IDD_SELECT_USER (English (U.S.))
 Resource26=IDD_PROGRESS (English (U.S.))
-Resource27=IDD_OBJTOOL_OPTIONS
+Resource27=IDA_ACTION_EDITOR
 Resource28=IDD_DCI_COLLECTION (English (U.S.))
 Class27=CObjectPropsGeneral
 Resource29=IDR_MAINFRAME (English (U.S.))
 Class28=CObjectPropsSecurity
 Resource30=IDD_SAVE_AGENT_CFG (English (U.S.))
-Resource31=IDD_SELECT_MP
-Resource32=IDA_SCRIPT_MANAGER
+Resource31=IDD_SELECT_USER
+Resource32=IDD_CREATE_TG
 Class29=CUserSelectDlg
-Resource33=IDA_ACTION_EDITOR
+Resource33=IDD_EDIT_RULE_SEVERITY
 Class30=CUserEditor
 Resource34=IDD_DCI_PROPERTIES
 Class31=CNewUserDlg
-Resource35=IDD_CREATE_TG
-Resource36=IDD_OBJTOOL_GENERAL
+Resource35=IDD_CREATE_CONDITION
+Resource36=IDA_NETMAP
 Class32=CUserPropDlg
 Resource37=IDD_EDIT_VARIABLE (English (U.S.))
-Resource38=IDD_CREATE_CONTAINER
+Resource38=IDD_SNMP_WALK
 Class33=CGroupPropDlg
-Resource39=IDD_OBJECT_COND_SCRIPT
-Resource40=IDA_NETMAP
-Resource41=IDD_EDIT_VARIABLE
+Resource39=IDA_SCRIPT_MANAGER
+Resource40=IDD_SELECT_EVENT
+Resource41=IDD_SELECT_OBJECT
 Resource42=IDA_ACTION_EDITOR (English (U.S.))
 Class34=CPasswordChangeDlg
 Class35=CNodeSummary
@@ -100,55 +100,55 @@ Class41=CGraphFrame
 Class42=CDCIThresholdsPage
 Resource46=IDA_OBJECT_TOOLS_EDITOR (English (U.S.))
 Resource47=IDM_CONTEXT (English (U.S.))
-Resource48=IDD_OBJECT_NETSRV_GENERAL
+Resource48=IDD_DISCOVERY_TARGETS
 Class43=CThresholdDlg
 Resource49=IDD_DESKTOP_SAVE_AS (English (U.S.))
-Resource50=IDA_DATA_VIEW
+Resource50=IDD_CREATE_TEMPLATE
 Class44=CMIBBrowserDlg
 Class45=CEventPolicyEditor
 Class46=CRuleList
 Class47=CRuleHeader
 Resource51=IDD_SELECT_AGENT_PARAM (English (U.S.))
-Resource52=IDD_CREATE_TEMPLATE
+Resource52=IDD_OBJECT_COND_GENERAL
 Class48=CObjectSelDlg
-Resource53=IDD_OBJECT_NODE_POLL
-Resource54=IDD_GROUP_PROPERTIES
+Resource53=IDD_DISCOVERY_RANGES
+Resource54=IDD_GRAPH_PROP_DATA
 Class49=CRuleCommentDlg
-Resource55=IDD_DISCOVERY_RANGES
+Resource55=IDD_REQUEST_PROCESSING
 Class50=CEventSelDlg
-Resource56=IDD_THRESHOLD
+Resource56=IDD_CREATE_VPNC
 Resource57=IDA_EPP (English (U.S.))
-Resource58=IDD_EDIT_RULE_SCRIPT
+Resource58=IDD_EDIT_EVENT
 Resource59=IDA_PACKAGE_MGR (English (U.S.))
 Resource60=IDD_OBJTOOL_GENERAL (English (U.S.))
 Class51=CObjectPropsPresentation
 Resource61=IDD_CREATE_TEMPLATE (English (U.S.))
-Resource62=IDD_LASTVAL_PROP
+Resource62=IDD_THRESHOLD
 Class52=CRuleSeverityDlg
-Resource63=IDD_OBJECT_COND_GENERAL
+Resource63=IDA_OBJECT_TOOLS_EDITOR
 Class53=CRuleAlarmDlg
 Class54=CAlarmBrowser
 Resource64=IDA_MDI_DEFAULT (English (U.S.))
-Resource65=IDD_OBJECT_STATUS
+Resource65=IDD_CP_GENERAL
 Resource66=IDD_EDIT_IP_SUBNET (English (U.S.))
 Resource67=IDD_EDIT_RULE_SEVERITY (English (U.S.))
 Resource68=IDD_ACTION_PROPERTIES (English (U.S.))
 Class55=CConsolePropsGeneral
 Class56=CActionEditor
-Resource69=IDA_EVENT_EDITOR
-Resource70=IDD_EDIT_RULE_SEVERITY
+Resource69=IDD_OBJECT_PRESENTATION
+Resource70=IDD_OBJTOOL_GENERAL
 Class57=CNewActionDlg
-Resource71=IDD_SAVE_AGENT_CFG
+Resource71=IDA_OBJECT_BROWSER
 Class58=CEditActionDlg
-Resource72=IDD_DCI_THRESHOLDS
+Resource72=IDD_EDIT_VARIABLE
 Class59=CActionSelDlg
-Resource73=IDD_NEW_OBJECT_TOOL
+Resource73=IDA_EVENT_EDITOR
 Resource74=IDD_EDIT_TRAP (English (U.S.))
 Resource75=IDD_USER_PROPERTIES (English (U.S.))
-Resource76=IDA_PACKAGE_MGR
+Resource76=IDD_NEW_ACTION
 Class60=CCreateObjectDlg
 Class61=CCreateContainerDlg
-Resource77=IDD_GRAPH_PROP_SETTINGS
+Resource77=IDD_SELECT_MP
 Class62=CCreateNodeDlg
 Resource78=IDD_OBJECT_NODE_GENERAL (English (U.S.))
 Resource79=IDT_MAP (English (U.S.))
@@ -158,31 +158,31 @@ Resource81=IDD_LASTVAL_PROP (English (U.S.))
 Class64=CPollNodeDlg
 Resource82=IDD_POLL_NODE (English (U.S.))
 Class65=CNodePoller
-Resource83=IDD_CREATE_CONDITION
-Resource84=IDD_SELECT_ACTION
+Resource83=IDA_DC_EDITOR
+Resource84=IDD_OBJTOOL_COLUMNS
 Class66=CCreateTemplateDlg
 Class67=CCreateTGDlg
-Resource85=IDD_ABOUTBOX
-Resource86=IDD_DISCOVERY_TARGETS
+Resource85=IDD_EDIT_TRAP_ARG
+Resource86=IDD_OBJECT_CAPS
 Class68=CTrapEditor
-Resource87=IDA_SERVER_CFG_EDITOR
-Resource88=IDD_SELECT_EVENT
-Resource89=IDD_SET_PASSWORD
+Resource87=IDD_SELECT_ACTION
+Resource88=IDD_DCI_SCHEDULE
+Resource89=IDD_LASTVAL_PROP
 Class69=CDataQueryDlg
-Resource90=IDD_DCI_COLLECTION
+Resource90=IDD_DCI_DATA_EXPORT
 Class70=CTrapEditDlg
 Resource91=IDM_VIEW_SPECIFIC (English (U.S.))
 Class71=CTrapParamDlg
-Resource92=IDD_USER_PROPERTIES
-Resource93=IDA_TRAP_EDITOR
+Resource92=IDD_CREATE_NODE
+Resource93=IDD_INPUT_BOX
 Class72=CGraphPropDlg
 Class73=CColorSelector
 Class74=CPackageMgr
-Resource94=IDD_ADD_DCI
+Resource94=IDA_AGENT_CONFIG_MANAGER
 Resource95=IDA_SCRIPT_MANAGER (English (U.S.))
 Resource96=IDD_SET_PASSWORD (English (U.S.))
 Resource97=IDD_DCI_TRANSFORM (English (U.S.))
-Resource98=IDD_DCI_TRANSFORM
+Resource98=IDD_CHANGE_PASSWORD
 Resource99=IDD_OBJECT_NETSRV_GENERAL (English (U.S.))
 Resource100=IDD_OBJTOOL_OPTIONS (English (U.S.))
 Resource101=IDA_LAST_VALUES (English (U.S.))
@@ -244,7 +244,7 @@ Class102=CWaitView
 Class103=CWebBrowser
 Class104=CSyslogBrowser
 Class105=CLPPList
-Resource129=IDA_AGENT_CFG_EDITOR
+Resource129=IDD_CREATE_CONTAINER
 Class106=CDCISchedulePage
 Resource130=IDD_OBJECT_CAPS (English (U.S.))
 Class107=CObjectPropsStatus
@@ -270,88 +270,88 @@ Class119=CMapControlBox
 Resource138=IDD_OBJECT_GENERAL (English (U.S.))
 Class120=CSubmapBkgndDlg
 Resource139=IDD_SUBMAP_BKGND (English (U.S.))
-Resource140=IDD_SNMP_WALK
-Resource141=IDD_ADDR_ENTRY
-Resource142=IDD_INPUT_BOX
-Resource143=IDA_LAST_VALUES
-Resource144=IDD_OBJTOOL_COLUMNS
-Resource145=IDD_DCI_SCHEDULE
-Resource146=IDD_OBJECT_SECURITY
-Resource147=IDA_GRAPH
-Resource148=IDD_OBJECT_NODE_GENERAL
-Resource149=IDD_COND_DCI_PROP
-Resource150=IDD_OBJECT_CLUSTER_GENERAL
-Resource151=IDD_SUBMAP_BKGND
-Resource152=IDD_ACTION_PROPERTIES
-Resource153=IDD_OBJECT_RELATIONS
-Resource154=IDD_SELECT_USER
-Resource155=IDA_AGENT_CONFIG_MANAGER
+Resource140=IDA_LAST_VALUES
+Resource141=IDD_OBJECT_GENERAL
+Resource142=IDD_EDIT_RULE_SCRIPT
+Resource143=IDD_ACTION_PROPERTIES
+Resource144=IDD_DCI_TRANSFORM
+Resource145=IDA_EPP
+Resource146=IDD_OBJECT_NODE_POLL
+Resource147=IDA_ALARM_BROWSER
+Resource148=IDD_SELECT_AGENT_PARAM
+Resource149=IDA_OBJECT_COMMENTS
+Resource150=IDD_SET_PASSWORD
+Resource151=IDA_SERVER_CFG_EDITOR
+Resource152=IDD_REMOVE_TEMPLATE
+Resource153=IDD_ADDR_ENTRY
+Resource154=IDD_OBJECT_RELATIONS
+Resource155=IDD_DATA_QUERY
 Resource156=IDM_VIEW_SPECIFIC
-Resource157=IDA_ALARM_BROWSER
-Resource158=IDD_UPGRADE
-Resource159=IDD_DESKTOP_SAVE_AS
-Resource160=IDD_SELECT_AGENT_PARAM
-Resource161=IDD_AGENT_CONFIG
-Resource162=IDD_OBJECT_CLUSTER_RESOURCES
-Resource163=IDD_MIB_BROWSER
-Resource164=IDD_CHANGE_PASSWORD
-Resource165=IDR_MAINFRAME
-Resource166=IDD_OBJECT_PRESENTATION
-Resource167=IDD_SELECT_OBJECT
-Resource168=IDD_CREATE_MP
-Resource169=IDA_EPP
-Resource170=IDA_OBJECT_COMMENTS
-Resource171=IDD_CREATE_NETSRV
+Resource157=IDD_EDIT_RULE_COMMENT
+Resource158=IDD_USER_PROPERTIES
+Resource159=IDD_CREATE_MP
+Resource160=IDD_AGENT_CONFIG
+Resource161=IDD_ABOUTBOX
+Resource162=IDD_DCI_COLLECTION
+Resource163=IDD_OBJECT_VPNC_GENERAL
+Resource164=IDA_AGENT_CFG_EDITOR
+Resource165=IDD_DCI_THRESHOLDS
+Resource166=IDD_OBJECT_STATUS
+Resource167=IDD_EDIT_IP_SUBNET
+Resource168=IDD_OBJECT_SECURITY
+Resource169=IDD_OBJECT_CLUSTER_GENERAL
+Resource170=IDD_EDIT_TRAP
+Resource171=IDD_DISCOVERY_GENERAL
 Class121=CModuleManager
 Class122=CDesktopManager
-Resource172=IDD_OBJECT_CAPS
-Resource173=IDD_DISCOVERY_GENERAL
+Resource172=IDD_EDIT_RULE_ALARM
+Resource173=IDD_OBJECT_NODE_GENERAL
 Class123=CCreateCondDlg
 Class124=CCondPropsGeneral
 Class125=CCondPropsScript
 Class126=CCondPropsData
-Resource174=IDD_DCI_DATA_EXPORT
+Resource174=IDD_CREATE_CLUSTER
 Class127=CAddDCIDlg
-Resource175=IDA_MDI_DEFAULT
+Resource175=IDD_UPGRADE
 Class128=CCondDCIPropDlg
-Resource176=IDD_REMOVE_TEMPLATE
+Resource176=IDA_GRAPH
 Class129=CAgentConfigMgr
-Resource177=IDA_OBJECT_TOOLS_EDITOR
-Resource178=IDD_OBJECT_GENERAL
+Resource177=IDA_PACKAGE_MGR
+Resource178=IDD_OBJECT_NETSRV_GENERAL
 Class130=CAgentCfgDlg
 Class131=CObjectCommentsEditor
-Resource179=IDD_DATA_QUERY
+Resource179=IDD_OBJECT_COND_SCRIPT
 Class132=CRuleScriptDlg
 Class133=CDetailsView
-Resource180=IDD_EDIT_RULE_ALARM
+Resource180=IDD_NEW_OBJECT_TOOL
 Class134=CDiscoveryPropGeneral
-Resource181=IDD_SELECT_INTERNAL_ITEM
+Resource181=IDD_COND_DCI_PROP
 Class135=CDiscoveryPropTargets
-Resource182=IDD_OBJECT_COND_DATA
+Resource182=IDA_DATA_VIEW
 Class136=CDiscoveryPropAddrList
-Resource183=IDD_NEW_USER
+Resource183=IDD_DESKTOP_SAVE_AS
 Class138=CObjectView
 Class139=CObjectOverview
 Class140=CAlarmView
 Class141=CObjectDepView
-Resource184=IDD_EDIT_RULE_COMMENT
+Resource184=IDD_SAVE_AGENT_CFG
 Class137=CObjectBrowser
 Class142=CCreateMPDlg
-Resource185=IDD_EDIT_IP_SUBNET
+Resource185=IDA_MDI_DEFAULT
 Class143=CSelectMPDlg
-Resource186=IDD_CREATE_CLUSTER
+Resource186=IDD_GROUP_PROPERTIES
 Class144=CTrapSelDlg
-Resource187=IDD_SELECT_TRAP
+Resource187=IDD_NEW_USER
 Class145=CConsoleUpgradeDlg
-Resource188=IDD_EDIT_TRAP
+Resource188=IDD_OBJECT_COND_DATA
 Class146=CCreateClusterDlg
-Resource189=IDD_CREATE_VPNC
+Resource189=IDD_OBJECT_CLUSTER_RESOURCES
 Class147=CClusterPropsGeneral
-Resource190=IDD_GRAPH_PROP_DATA
+Resource190=IDD_SELECT_TRAP
 Class148=CClusterPropsResources
-Resource191=IDD_REQUEST_PROCESSING
+Resource191=IDD_CREATE_NETSRV
 Class149=CClusterResDlg
-Resource192=IDA_OBJECT_BROWSER
+Resource192=IDD_MIB_BROWSER
 Class150=CClusterView
 Resource193=IDD_CLUSTER_RESOURCE
 
@@ -4449,10 +4449,12 @@ Control67=IDC_STATIC_TO,static,1342308352
 [DLG:IDD_GRAPH_PROP_DATA]
 Type=1
 Class=CGraphDataPage
-ControlCount=3
+ControlCount=5
 Control1=IDC_LIST_DCI,SysListView32,1342242825
 Control2=IDC_BUTTON_ADD,button,1342242816
 Control3=IDC_BUTTON_DELETE,button,1342242816
+Control4=IDC_BUTTON_UP,button,1342242816
+Control5=IDC_BUTTON_DOWN,button,1342242816
 
 [DLG:IDD_LASTVAL_PROP]
 Type=1
@@ -4815,8 +4817,8 @@ VirtualFilter=idWC
 Type=1
 Class=CAddDCIDlg
 ControlCount=6
-Control1=IDC_LIST_NODES,SysListView32,1342291981
-Control2=IDC_LIST_DCI,SysListView32,1342291981
+Control1=IDC_LIST_NODES,SysListView32,1342291997
+Control2=IDC_LIST_DCI,SysListView32,1342291997
 Control3=IDOK,button,1342242817
 Control4=IDCANCEL,button,1342242816
 Control5=IDC_STATIC,static,1342308352
index 0857307..c9186e8 100644 (file)
@@ -2197,13 +2197,15 @@ END
 IDD_GRAPH_PROP_DATA DIALOGEX 0, 0, 297, 199
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Data Sources"
-FONT 8, "MS Sans Serif", 0, 0, 0x1
+FONT 8, "MS Sans Serif"
 BEGIN
     CONTROL         "List1",IDC_LIST_DCI,"SysListView32",LVS_REPORT | 
                     LVS_SHOWSELALWAYS | WS_TABSTOP,7,7,226,185,
                     WS_EX_CLIENTEDGE
     PUSHBUTTON      "&Add...",IDC_BUTTON_ADD,240,7,50,14
     PUSHBUTTON      "&Delete",IDC_BUTTON_DELETE,240,25,50,14
+    PUSHBUTTON      "Move &up",IDC_BUTTON_UP,240,43,50,14
+    PUSHBUTTON      "Move do&wn",IDC_BUTTON_DOWN,240,61,50,14
 END
 
 IDD_LASTVAL_PROP DIALOG DISCARDABLE  0, 0, 192, 70
@@ -2670,16 +2672,16 @@ END
 IDD_ADD_DCI DIALOGEX 0, 0, 373, 215
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Add Parameter"
-FONT 8, "MS Sans Serif", 0, 0, 0x1
+FONT 8, "MS Sans Serif"
 BEGIN
     CONTROL         "List1",IDC_LIST_NODES,"SysListView32",LVS_REPORT | 
-                    LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_NOCOLUMNHEADER | 
-                    LVS_NOSORTHEADER | WS_TABSTOP,7,17,148,168,
-                    WS_EX_CLIENTEDGE
+                    LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | 
+                    LVS_NOCOLUMNHEADER | LVS_NOSORTHEADER | WS_TABSTOP,7,17,
+                    148,168,WS_EX_CLIENTEDGE
     CONTROL         "List2",IDC_LIST_DCI,"SysListView32",LVS_REPORT | 
-                    LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_NOCOLUMNHEADER | 
-                    LVS_NOSORTHEADER | WS_TABSTOP,162,17,204,168,
-                    WS_EX_CLIENTEDGE
+                    LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | 
+                    LVS_NOCOLUMNHEADER | LVS_NOSORTHEADER | WS_TABSTOP,162,
+                    17,204,168,WS_EX_CLIENTEDGE
     DEFPUSHBUTTON   "OK",IDOK,260,194,50,14
     PUSHBUTTON      "Cancel",IDCANCEL,316,194,50,14
     LTEXT           "Nodes",IDC_STATIC,7,7,22,8
index c37a266..38b8d11 100644 (file)
 #define _APS_3D_CONTROLS                     1
 #define _APS_NEXT_RESOURCE_VALUE        354
 #define _APS_NEXT_COMMAND_VALUE         33051
-#define _APS_NEXT_CONTROL_VALUE         1440
+#define _APS_NEXT_CONTROL_VALUE         1442
 #define _APS_NEXT_SYMED_VALUE           129
 #endif
 #endif
index 766617f..c6ca89a 100644 (file)
@@ -524,6 +524,16 @@ DCIInfo::DCIInfo()
    m_pszDescription = NULL;
 }
 
+DCIInfo::DCIInfo(DCIInfo *pSrc)
+{
+   m_dwNodeId = pSrc->m_dwNodeId;
+   m_dwItemId = pSrc->m_dwItemId;
+   m_iSource = pSrc->m_iSource;
+   m_iDataType = pSrc->m_iDataType;
+   m_pszParameter = _tcsdup(pSrc->m_pszParameter);
+   m_pszDescription = _tcsdup(pSrc->m_pszDescription);
+}
+
 DCIInfo::DCIInfo(DWORD dwNodeId, NXC_DCI *pItem)
 {
    m_dwNodeId = dwNodeId;
index 87d3faf..53c220f 100644 (file)
@@ -3,8 +3,8 @@
 
 [Setup]
 AppName=NetXMS
-AppVerName=NetXMS 0.2.15-hf1
-AppVersion=0.2.15-hf1
+AppVerName=NetXMS 0.2.16-rc3
+AppVersion=0.2.16-rc3
 AppPublisher=NetXMS Team
 AppPublisherURL=http://www.netxms.org
 AppSupportURL=http://www.netxms.org
@@ -13,7 +13,7 @@ DefaultDirName=C:\NetXMS
 DefaultGroupName=NetXMS
 AllowNoIcons=yes
 LicenseFile=..\..\..\copying
-OutputBaseFilename=netxms-0.2.15-hf1
+OutputBaseFilename=netxms-0.2.16-rc3
 Compression=lzma
 SolidCompression=yes
 LanguageDetectionMethod=none
@@ -95,12 +95,12 @@ Source: "nxcon.exe.manifest"; DestDir: "{app}\bin"; Flags: ignoreversion; Compon
 Source: "nxav.exe.manifest"; DestDir: "{app}\bin"; Flags: ignoreversion; Components: console
 Source: "nxnotify.exe.manifest"; DestDir: "{app}\bin"; Flags: ignoreversion; Components: console
 ; Web server files
-Source: "..\..\nxhttpd\Release\nxhttpd.exe"; DestDir: "{app}\bin"; Flags: ignoreversion; Components: websrv
-Source: "..\..\nxhttpd\static\*.xsl"; DestDir: "{app}\var\www"; Flags: ignoreversion; Components: websrv
-Source: "..\..\nxhttpd\static\*.js"; DestDir: "{app}\var\www"; Flags: ignoreversion; Components: websrv
-Source: "..\..\nxhttpd\static\screen.css"; DestDir: "{app}\var\www"; Flags: ignoreversion; Components: websrv
-Source: "..\..\nxhttpd\static\images\*.png"; DestDir: "{app}\var\www\images"; Flags: ignoreversion; Components: websrv
-Source: "..\..\nxhttpd\static\images\*.jpg"; DestDir: "{app}\var\www\images"; Flags: ignoreversion; Components: websrv
+;Source: "..\..\nxhttpd\Release\nxhttpd.exe"; DestDir: "{app}\bin"; Flags: ignoreversion; Components: websrv
+;Source: "..\..\nxhttpd\static\*.xsl"; DestDir: "{app}\var\www"; Flags: ignoreversion; Components: websrv
+;Source: "..\..\nxhttpd\static\*.js"; DestDir: "{app}\var\www"; Flags: ignoreversion; Components: websrv
+;Source: "..\..\nxhttpd\static\screen.css"; DestDir: "{app}\var\www"; Flags: ignoreversion; Components: websrv
+;Source: "..\..\nxhttpd\static\images\*.png"; DestDir: "{app}\var\www\images"; Flags: ignoreversion; Components: websrv
+;Source: "..\..\nxhttpd\static\images\*.jpg"; DestDir: "{app}\var\www\images"; Flags: ignoreversion; Components: websrv
 ; Third party files
 Source: "Files\mfc42.dll"; DestDir: "{app}\bin"; Flags: ignoreversion; Components: console
 Source: "Files\mfc42u.dll"; DestDir: "{app}\bin"; Flags: ignoreversion; Components: console
index 1cc437f..230002a 100644 (file)
@@ -197,6 +197,10 @@ SOURCE=..\..\include\dbdrv.h
 # End Source File
 # Begin Source File
 
+SOURCE="..\..\..\..\include\netxms-version.h"
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\..\..\include\netxmsdb.h
 # End Source File
 # Begin Source File
index 46c9bec..fb551cb 100644 (file)
@@ -1,6 +1,6 @@
 /* 
 ** nxdbmgr - NetXMS database manager
-** Copyright (C) 2004, 2005, 2006 Victor Kirhenshtein
+** Copyright (C) 2004, 2005, 2006, 2007 Victor Kirhenshtein
 **
 ** 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
@@ -77,6 +77,46 @@ static BOOL CreateConfigParam(TCHAR *pszName, TCHAR *pszValue, int iVisible, int
 }
 
 
+//
+// Upgrade from V57 to V58
+//
+
+static BOOL H_UpgradeFromV57(void)
+{
+   static TCHAR m_szBatch[] =
+               _T("ALTER TABLE object_properties ADD is_system integer\n")
+               _T("UPDATE object_properties SET is_system=0\n")
+      _T("<END>");
+
+   if (!SQLBatch(m_szBatch))
+      if (!g_bIgnoreErrors)
+         return FALSE;
+
+       if (!CreateTable(_T("CREATE TABLE graphs (")
+                        _T("graph_id integer not null,")
+                        _T("owner_id integer not null,")
+                        _T("name varchar(255) not null,")
+                        _T("config $SQL:TEXT not null,")
+                        _T("PRIMARY KEY(graph_id))")))
+      if (!g_bIgnoreErrors)
+         return FALSE;
+
+       if (!CreateTable(_T("CREATE TABLE graph_acl (")
+                        _T("graph_id integer not null,")
+                        _T("user_id integer not null,")
+                        _T("user_rights integer not null,")
+                        _T("PRIMARY KEY(graph_id,user_id))")))
+      if (!g_bIgnoreErrors)
+         return FALSE;
+
+   if (!SQLQuery(_T("UPDATE config SET var_value='58' WHERE var_name='DBFormatVersion'")))
+      if (!g_bIgnoreErrors)
+         return FALSE;
+
+   return TRUE;
+}
+
+
 //
 // Upgrade from V56 to V57
 //
@@ -2552,6 +2592,7 @@ static struct
    { 54, H_UpgradeFromV54 },
    { 55, H_UpgradeFromV55 },
    { 56, H_UpgradeFromV56 },
+   { 57, H_UpgradeFromV57 },
    { 0, NULL }
 };