');
- $tmpDiv.load($(this).data('url') + ' #mainContent', function()
- {
- $('#content').html($tmpDiv.find('#content').html());
- $('#sidebarContent').html($tmpDiv.find('#sidebarContent').html());
- $('#actionbox .histories-list').html($tmpDiv.find('#actionbox .histories-list').html());
- if($.cookie('isFullScreen') == 1) fullScreen();
- $('#content [data-ride="tree"]').tree();
- $('#outline li.has-list').addClass('open in');
- $('#outline li.has-list>i+ul').prev('i').remove();
- if($('#markdownContent').val())
- {
- var simplemde = new SimpleMDE({element: $("#markdownContent")[0],toolbar:false, status: false});
- simplemde.value(String($('#markdownContent').val()));
- simplemde.togglePreview();
- }
- });
- });
-
- $('#sidebar .icon.icon-angle-right').click(function()
- {
- if($('#sidebar>.cell').is(':hidden') && $('.outline-content').is(':visible'))
- {
- $('.outline .outline-toggle i.icon-angle-left').trigger("click");
- }
- })
-
- $('.outline .outline-toggle i.icon-angle-right').trigger("click");
-})
diff --git a/module/doc/js/sortlibs.js b/module/doc/js/sortlibs.js
deleted file mode 100644
index 7086d79cf0..0000000000
--- a/module/doc/js/sortlibs.js
+++ /dev/null
@@ -1,40 +0,0 @@
-$(function()
-{
- /* Make libs sortable. */
- $('#libs').sortable(
- {
- trigger: '.lib > .icon-move, .lib > .lib-name',
- dropToClass: 'sort-to',
- stopPropagation: true,
- nested: true,
- selector: 'div',
- dragCssClass: 'drop-here',
- canMoveHere: function($ele, $target)
- {
- var maxTop = $('#libs .libList').height() - $ele.height();
- if(parseFloat($('.drag-shadow').css('top')) < 0) $('.drag-shadow').css('top', '0');
- if(parseFloat($('.drag-shadow').css('left')) != 0) $('.drag-shadow').css('left', '0');
- if(parseFloat($('.drag-shadow').css('top')) > maxTop) $('.drag-shadow').css('top', maxTop + 'px');
- if(parseFloat($('.drag-shadow').css('bottom')) > $('#libs').height()) $('.drag-shadow').css('bottom', '0');
- return true;
- },
- targetSelector: function($ele, $root)
- {
- var $libs = $ele.closest('#libs .libList');
- return $libs.children('div.lib');
- },
- always: function()
- {
- $('#libs,#libs .is-sorting').removeClass('is-sorting');
- },
- finish: function(e)
- {
- var orders = ',';
- $('#libs .libList').find('div.lib').each(function()
- {
- orders += $(this).attr('data-id') + ',';
- });
- $('#libIdList').attr('value', orders);
- }
- });
-});
diff --git a/module/doc/js/view.js b/module/doc/js/view.js
index 99bb339fee..7f8d8f5f36 100644
--- a/module/doc/js/view.js
+++ b/module/doc/js/view.js
@@ -1,42 +1,202 @@
$(function()
{
- var isFullscreen = $.cookie('docFullscreen') == 'true';
- $('body').toggleClass('doc-fullscreen', isFullscreen);
- $('.side-col').toggleClass('hidden', isFullscreen);
- $('#mainMenu .fullscreen-btn').attr('title', isFullscreen ? retrack : fullscreen);
- $('#mainMenu .fullscreen-btn').html('
' + (isFullscreen ? retrack : fullscreen));
+ if($.cookie('isFullScreen') == 1) fullScreen();
- $('#mainMenu .fullscreen-btn').click(function()
+ $('.menu-actions > a').click(function()
{
- $('.side-col').toggleClass('hidden');
- $('body').toggleClass('doc-fullscreen');
+ $(this).parent().hasClass('open') ? $(this).css('background', 'none') : $(this).css('background', '#f1f1f1');
+ })
- var isFullscreen = $('body').hasClass('doc-fullscreen');
- $('#mainMenu .fullscreen-btn').attr('title', isFullscreen ? retrack : fullscreen);
- $('#mainMenu .fullscreen-btn').html('
' + (isFullscreen ? retrack : fullscreen));
- $.cookie('docFullscreen', isFullscreen);
-
- setTimeout($.resetToolbarPosition, 50);
- });
-
- if(!canDeleteFile)
- {
- $('.detail-content .files-list li').each(function()
- {
- $(this).find('a[onclick^=deleteFile]').remove();
- });
- }
-
- if($('#urlIframe').size() > 0)
- {
- var defaultHeight = $('#mainContent .main-col').height() - 50;
- $('#urlIframe').height(defaultHeight);
- setTimeout($.resetToolbarPosition, 50);
- }
+ $('.menu-actions > a').blur(function() {$(this).css('background', 'none');})
})
+/**
+ * Ajax delete doc.
+ *
+ * @param string $link
+ * @param int $replaceID
+ * @param stirng $notice
+ * @access public
+ * @return void
+ */
+function ajaxDeleteDoc(link, replaceID, notice)
+{
+ if(confirm(notice))
+ {
+ $.get(link, function(data)
+ {
+ location.href = JSON.parse(data).locate;
+ });
+ }
+}
+
+/**
+ * Delete a file.
+ *
+ * @param int $fileID
+ * @access public
+ * @return void
+ */
function deleteFile(fileID)
{
if(!fileID) return;
- hiddenwin.location.href =createLink('doc', 'deleteFile', 'docID=' + docID + '&fileID=' + fileID);
+ hiddenwin.location.href = createLink('file', 'delete', 'fileID=' + fileID);
}
+
+/**
+ * Display the document in full screen.
+ *
+ * @access public
+ * @return void
+ */
+function fullScreen()
+{
+ var element = document.getElementById('content');
+ var requestMethod = element.requestFullScreen || element.webkitRequestFullScreen || element.mozRequestFullScreen || element.msRequestFullscreen;
+ if(requestMethod)
+ {
+ var afterEnterFullscreen = function()
+ {
+ $('#mainActions').removeClass('hidden');
+ $('#content').addClass('scrollbar-hover');
+ $('#content .actions').addClass('hidden');
+ $('#content .file-image .right-icon').addClass('hidden');
+ $('#content .detail').eq(1).addClass('hidden');
+ $.cookie('isFullScreen', 1);
+ };
+
+ var whenFailEnterFullscreen = function(error)
+ {
+ $.cookie('isFullScreen', 0);
+ };
+
+ try
+ {
+ var result = requestMethod.call(element);
+ if(result && (typeof result.then === 'function' || result instanceof window.Promise))
+ {
+ result.then(afterEnterFullscreen).catch(whenFailEnterFullscreen);
+ }
+ else
+ {
+ afterEnterFullscreen();
+ }
+ }
+ catch (error)
+ {
+ whenFailEnterFullscreen(error);
+ }
+ }
+
+ $('.main-col iframe').css('min-height', $(window).height() + 'px');
+}
+
+/**
+ * Exit full screen.
+ *
+ * @access public
+ * @return void
+ */
+function exitFullScreen()
+{
+ $('#mainActions').addClass('hidden');
+ $('#content').removeClass('scrollbar-hover');
+ $('#content .actions').removeClass('hidden');
+ $('#content .file-image .right-icon').removeClass('hidden');
+ $('#content .detail').eq(1).removeClass('hidden');
+ $('.main-col iframe').css('min-height', '380px');
+ $.cookie('isFullScreen', 0);
+}
+
+document.addEventListener('fullscreenchange', function (e)
+{
+ if(!document.fullscreenElement) exitFullScreen();
+});
+
+document.addEventListener('webkitfullscreenchange', function (e)
+{
+ if(!document.webkitFullscreenElement) exitFullScreen();
+});
+
+document.addEventListener('mozfullscreenchange', function (e)
+{
+ if(!document.mozFullScreenElement) exitFullScreen();
+});
+
+document.addEventListener('msfullscreenChange', function (e)
+{
+ if(!document.msfullscreenElement) exitFullScreen();
+});
+
+$(function()
+{
+ $(document).keydown(function(event)
+ {
+ if($.cookie('isFullScreen') == 1)
+ {
+ if(event.keyCode == 37) $('#prevPage').click();
+ if(event.keyCode == 39) $('#nextPage').click();
+ }
+ });
+
+ $('.outline').height($('.article-content').height());
+
+ $('#content').on('click', '.outline .outline-toggle i.icon-angle-right', function()
+ {
+ $('.article-content').css('width', '85%');
+ $('.outline').css({'min-width' : '180px', 'border-left' : '2px solid #efefef'});
+ $(this).removeClass('icon-angle-right').addClass('icon-angle-left').css('left', '-9px');
+ $('.outline-content').show();
+ if($('#sidebar>.cell').is(':visible')) $('#sidebar .icon.icon-angle-right').trigger("click");
+ }).on('click', '.outline .outline-toggle i.icon-angle-left', function()
+ {
+ $('.article-content').width('100%');
+ $(this).removeClass('icon-angle-left').addClass('icon-angle-right');
+ $('.outline-content').hide();
+ }).on('click', '#outline li', function(e)
+ {
+ $('#outline li.active').removeClass('active');
+ $(e.target).closest('li').addClass('active');
+ });
+
+ $('#outline li.has-list').addClass('open in');
+ $('#outline li.has-list>i+ul').prev('i').remove();
+
+ $(document).on('click', '.detail-content a', function(event)
+ {
+ var target = $(this).attr('target');
+ if($.cookie('isFullScreen') == 1 && target != '_blank') exitFullScreen();
+ })
+
+ /* Update doc content silently on switch doc version, story #40503 */
+ $(document).on('click', '.doc-version-menu a, #mainActions .container a', function(event)
+ {
+ var $tmpDiv = $('
');
+ $tmpDiv.load($(this).data('url') + ' #mainContent', function()
+ {
+ $('#content').html($tmpDiv.find('#content').html());
+ $('#sidebarContent').html($tmpDiv.find('#sidebarContent').html());
+ $('#actionbox .histories-list').html($tmpDiv.find('#actionbox .histories-list').html());
+ if($.cookie('isFullScreen') == 1) fullScreen();
+ $('#content [data-ride="tree"]').tree();
+ $('#outline li.has-list').addClass('open in');
+ $('#outline li.has-list>i+ul').prev('i').remove();
+ if($('#markdownContent').val())
+ {
+ var simplemde = new SimpleMDE({element: $("#markdownContent")[0],toolbar:false, status: false});
+ simplemde.value(String($('#markdownContent').val()));
+ simplemde.togglePreview();
+ }
+ });
+ });
+
+ $('#sidebar .icon.icon-angle-right').click(function()
+ {
+ if($('#sidebar>.cell').is(':hidden') && $('.outline-content').is(':visible'))
+ {
+ $('.outline .outline-toggle i.icon-angle-left').trigger("click");
+ }
+ })
+
+ $('.outline .outline-toggle i.icon-angle-right').trigger("click");
+})
diff --git a/module/doc/lang/de.php b/module/doc/lang/de.php
index 4469f75ff3..089e739982 100644
--- a/module/doc/lang/de.php
+++ b/module/doc/lang/de.php
@@ -11,7 +11,7 @@
*/
$lang->doclib = new stdclass();
$lang->doclib->name = 'Name';
-$lang->doclib->control = 'Zugriffskontrolle';
+$lang->doclib->control = 'Zugang';
$lang->doclib->group = 'Gruppe';
$lang->doclib->user = 'Benutzer';
$lang->doclib->files = 'Dateien';
@@ -164,8 +164,8 @@ $lang->doc->cancelCollection = 'Favorit entfernen';
$lang->doc->deleteFile = 'Delete File';
$lang->doc->menuTitle = 'Menu';
$lang->doc->api = 'API';
-
-$lang->doc->collectAction = 'Add Favorite';
+$lang->doc->displaySetting = 'Display Settings';
+$lang->doc->collectAction = 'Add Favorite';
$lang->doc->libName = 'Name';
$lang->doc->libType = 'Kategorie';
@@ -187,6 +187,7 @@ $lang->doc->titlePlaceholder = 'Please enter the title';
$lang->doc->confirm = 'Confirm';
$lang->doc->docSummary = 'Total:
%s.';
$lang->doc->docCheckedSummary = 'Seleted:
%total%.';
+$lang->doc->showDoc = 'Whether to display documents';
global $config;
/* Query condition list. */
@@ -327,3 +328,6 @@ $lang->doc->libDropdown['delModule'] = 'Delete Directory';
$lang->doc->featureBar['tableContents']['all'] = 'All';
$lang->doc->featureBar['tableContents']['draft'] = 'Draft';
+
+$lang->doc->showDocList[1] = 'Yes';
+$lang->doc->showDocList[0] = 'No';
diff --git a/module/doc/lang/en.php b/module/doc/lang/en.php
index 2e6b76a7c7..83a9379396 100644
--- a/module/doc/lang/en.php
+++ b/module/doc/lang/en.php
@@ -164,8 +164,8 @@ $lang->doc->cancelCollection = 'Remove Favorite';
$lang->doc->deleteFile = 'Delete File';
$lang->doc->menuTitle = 'Direcotory';
$lang->doc->api = 'API';
-
-$lang->doc->collectAction = 'Add Favorite';
+$lang->doc->displaySetting = 'Display Settings';
+$lang->doc->collectAction = 'Add Favorite';
$lang->doc->libName = 'Document Library';
$lang->doc->libType = 'Category';
@@ -187,6 +187,7 @@ $lang->doc->titlePlaceholder = 'Please enter the title';
$lang->doc->confirm = 'Confirm';
$lang->doc->docSummary = 'Total:
%s.';
$lang->doc->docCheckedSummary = 'Seleted:
%total%.';
+$lang->doc->showDoc = 'Whether to display documents';
global $config;
/* Query condition list. */
@@ -327,3 +328,6 @@ $lang->doc->libDropdown['delModule'] = 'Delete Directory';
$lang->doc->featureBar['tableContents']['all'] = 'All';
$lang->doc->featureBar['tableContents']['draft'] = 'Draft';
+
+$lang->doc->showDocList[1] = 'Yes';
+$lang->doc->showDocList[0] = 'No';
diff --git a/module/doc/lang/fr.php b/module/doc/lang/fr.php
index c2896eb533..3adaf439eb 100644
--- a/module/doc/lang/fr.php
+++ b/module/doc/lang/fr.php
@@ -11,7 +11,7 @@
*/
$lang->doclib = new stdclass();
$lang->doclib->name = 'Nom';
-$lang->doclib->control = "Contrôle d'Accès";
+$lang->doclib->control = 'Droit';
$lang->doclib->group = 'Groupe';
$lang->doclib->user = 'Utilisateur';
$lang->doclib->files = 'Pièces Jointes';
@@ -164,8 +164,8 @@ $lang->doc->cancelCollection = 'Retirer des Favoris';
$lang->doc->deleteFile = 'Supprimer Fichier';
$lang->doc->menuTitle = 'Menu';
$lang->doc->api = 'API';
-
-$lang->doc->collectAction = 'Add Favorite';
+$lang->doc->displaySetting = 'Display Settings';
+$lang->doc->collectAction = 'Add Favorite';
$lang->doc->libName = 'Bibliothèque de Documents';
$lang->doc->libType = 'Catégorie';
@@ -187,6 +187,7 @@ $lang->doc->titlePlaceholder = 'Veuillez saisir le titre';
$lang->doc->confirm = 'Confirm';
$lang->doc->docSummary = 'Total:
%s.';
$lang->doc->docCheckedSummary = 'Seleted:
%total%.';
+$lang->doc->showDoc = 'Whether to display documents';
global $config;
/* Query condition list. */
@@ -328,3 +329,6 @@ $lang->doc->libDropdown['delModule'] = 'Delete Directory';
$lang->doc->featureBar['tableContents']['all'] = 'All';
$lang->doc->featureBar['tableContents']['draft'] = 'Draft';
+
+$lang->doc->showDocList[1] = 'Yes';
+$lang->doc->showDocList[0] = 'No';
diff --git a/module/doc/lang/zh-cn.php b/module/doc/lang/zh-cn.php
index 36dc342099..3650f9c138 100644
--- a/module/doc/lang/zh-cn.php
+++ b/module/doc/lang/zh-cn.php
@@ -164,8 +164,8 @@ $lang->doc->cancelCollection = '取消收藏';
$lang->doc->deleteFile = '删除附件';
$lang->doc->menuTitle = '目录';
$lang->doc->api = '接口';
-
-$lang->doc->collectAction = '收藏文档';
+$lang->doc->displaySetting = '显示设置';
+$lang->doc->collectAction = '收藏文档';
$lang->doc->libName = '库名称';
$lang->doc->libType = '库类型';
@@ -187,6 +187,7 @@ $lang->doc->titlePlaceholder = '请输入标题';
$lang->doc->confirm = '确认';
$lang->doc->docSummary = '本页共
%s 个文档。';
$lang->doc->docCheckedSummary = '共选中
%total% 个文档。';
+$lang->doc->showDoc = '是否显示文档';
global $config;
/* 查询条件列表 */
@@ -327,3 +328,6 @@ $lang->doc->libDropdown['delModule'] = '删除目录';
$lang->doc->featureBar['tableContents']['all'] = '全部';
$lang->doc->featureBar['tableContents']['draft'] = '草稿';
+
+$lang->doc->showDocList[1] = '是';
+$lang->doc->showDocList[0] = '否';
diff --git a/module/doc/model.php b/module/doc/model.php
index 75f0f47109..148fee61b9 100644
--- a/module/doc/model.php
+++ b/module/doc/model.php
@@ -19,7 +19,8 @@ class docModel extends model
public $action;
// api doc type
- const DOC_TYPE_API = 'api';
+ const DOC_TYPE_API = 'api';
+ const DOC_TYPE_REST = 'restapi';
/**
* Get library by id.
@@ -985,8 +986,8 @@ class docModel extends model
$this->config->doc->search['module'] = 'contributeDoc';
$products = $this->product->getPairs();
- $this->config->doc->search['params']['project']['values'] = array('' => '') + $this->loadModel('project')->getPairsByProgram() + array('all' => $this->lang->doc->allProjects);
- $this->config->doc->search['params']['execution']['values'] = array('' => '') + $this->loadModel('execution')->getPairs(0, 'all', 'multiple,leaf,noprefix') + array('all' => $this->lang->doc->allExecutions);
+ $this->config->doc->search['params']['project']['values'] = array('' => '') + $this->loadModel('project')->getPairsByProgram('', 'all', false, 'order_asc', 'kanban') + array('all' => $this->lang->doc->allProjects);
+ $this->config->doc->search['params']['execution']['values'] = array('' => '') + $this->loadModel('execution')->getPairs(0, 'sprint,stage', 'multiple,leaf,noprefix') + array('all' => $this->lang->doc->allExecutions);
$this->config->doc->search['params']['lib']['values'] = array('' => '') + $this->loadModel('doc')->getLibs('all', 'withObject') + array('all' => $this->lang->doclib->all);
$this->config->doc->search['params']['product']['values'] = array('' => '') + $products + array('all' => $this->lang->doc->allProduct);
@@ -1007,7 +1008,7 @@ class docModel extends model
if($type == 'project')
{
- $this->config->doc->search['params']['execution']['values'] = array('' => '') + $this->loadModel('execution')->getPairs($this->session->project, 'all', 'multiple,leaf,noprefix') + array('all' => $this->lang->doc->allExecutions);
+ $this->config->doc->search['params']['execution']['values'] = array('' => '') + $this->loadModel('execution')->getPairs($this->session->project, 'sprint,stage', 'multiple,leaf,noprefix') + array('all' => $this->lang->doc->allExecutions);
}
else
{
@@ -1023,7 +1024,7 @@ class docModel extends model
else
{
$products = $this->product->getPairs('nocode', $this->session->project);
- $this->config->doc->search['params']['execution']['values'] = array('' => '') + $this->loadModel('execution')->getPairs($this->session->project, 'all', 'multiple,leaf,noprefix') + array('all' => $this->lang->doc->allExecutions);
+ $this->config->doc->search['params']['execution']['values'] = array('' => '') + $this->loadModel('execution')->getPairs($this->session->project, 'sprint,stage', 'multiple,leaf,noprefix') + array('all' => $this->lang->doc->allExecutions);
$this->config->doc->search['params']['lib']['values'] = array('' => '', $libID => ($libID ? $libs[$libID] : 0), 'all' => $this->lang->doclib->all);
$this->config->doc->search['params']['product']['values'] = array('' => '') + $products + array('all' => $this->lang->doc->allProduct);
}
@@ -1035,7 +1036,7 @@ class docModel extends model
$moduleOptionMenu = $this->loadModel('tree')->getOptionMenu($libID, 'doc', $startModuleID = 0);
$this->config->doc->search['params']['module']['values'] = $moduleOptionMenu;
- if($type == 'index' || $type == 'objectLibs' || ($this->app->rawMethod != 'contribute' and $libID == 0))
+ if($type == 'index' || $type == 'view' || ($this->app->rawMethod != 'contribute' and $libID == 0))
{
unset($this->config->doc->search['fields']['module']);
unset($this->config->doc->search['fields']['lib']);
@@ -1586,6 +1587,7 @@ class docModel extends model
->leftjoin(TABLE_DOCLIB)->alias('t2')->on('t2.project=t1.id')
->where("CONCAT(',', t2.users, ',')")->like("%,{$this->app->user->account},%")
->andWhere('t1.vision')->eq($this->config->vision)
+ ->andWhere('t1.model')->ne('kanban')
->andWhere('t1.deleted')->eq(0)
->beginIF(!$this->app->user->admin)->andWhere('t1.id')->in($this->app->user->view->projects)->fi()
->fetchPairs();
@@ -1595,6 +1597,7 @@ class docModel extends model
->where('type')->eq('project')
->andWhere('vision')->eq($this->config->vision)
->andWhere('deleted')->eq(0)
+ ->andWhere('model')->ne('kanban')
->beginIF(!$this->app->user->admin)->andWhere('id')->in($this->app->user->view->projects)->fi()
->orderBy('order_asc')
->fetchAll('id');
@@ -1962,37 +1965,6 @@ class docModel extends model
return $node;
}
- /**
- * Get product crumb.
- *
- * @param int $productID
- * @param int $executionID
- * @access public
- * @return string
- */
- public function getProductCrumb($productID, $executionID = 0)
- {
- if(empty($productID)) return '';
- if($executionID)
- {
- $executionProduct = $this->dao->select('*')->from(TABLE_PROJECTPRODUCT)->where('product')->eq($productID)->andWhere('project')->eq($executionID)->fetch();
- if(empty($executionProduct))
- {
- setcookie('product', 0, $this->config->cookieLife, $this->config->webRoot, '', $this->config->cookieSecure, true);
- return html::a(helper::createLink('doc', 'allLibs', "type=execution"), $this->lang->executionCommon) . $this->lang->doc->separator;
- }
- }
- $object = $this->dao->select('id,name')->from(TABLE_PRODUCT)->where('id')->eq($productID)->fetch();
- if(empty($object)) return '';
-
- $crumb = '';
- $crumb .= html::a(helper::createLink('doc', 'allLibs', "type=product"), $this->lang->productCommon) . $this->lang->doc->separator;
- $crumb .= html::a(helper::createLink('doc', 'objectLibs', "type=product&objectID=$productID"), $object->name) . $this->lang->doc->separator;
- $crumb .= html::a(helper::createLink('doc', 'allLibs', "type=execution&product=$productID"), $this->lang->doclib->execution);
- if($executionID) $crumb .= $this->lang->doc->separator;
- return $crumb;
- }
-
/**
* Set lib users.
*
@@ -2058,9 +2030,9 @@ class docModel extends model
$today = date('Y-m-d');
$lately = date('Y-m-d', strtotime('-3 day'));
- $statisticInfo = $this->dao->select("count(id) as totalDocs, count(editedDate like '{$today}%' or null) as todayEditedDocs,
- count(editedDate > '{$lately}' or null) as lastEditedDocs, count(addedDate > '{$lately}' or null) as lastAddedDocs,
- count(collector like '%,{$this->app->user->account},%' or null) as myCollection, count(addedBy = '{$this->app->user->account}' or null) as myDocs")->from(TABLE_DOC)
+ $statisticInfo = $this->dao->select("count(id) as totalDocs, count(IF(editedDate like '{$today}%', 1, null)) as todayEditedDocs,
+ count(IF(editedDate > '{$lately}', 1, null)) as lastEditedDocs, count(IF(addedDate > '{$lately}', 1, null)) as lastAddedDocs,
+ count(IF(collector like '%,{$this->app->user->account},%', 1, null)) as myCollection, count(IF(addedBy = '{$this->app->user->account}', 1, null)) as myDocs")->from(TABLE_DOC)
->where('deleted')->eq(0)
->andWhere('vision')->eq($this->config->vision)
->andWhere('id')->in($docIdList)
@@ -2273,8 +2245,8 @@ class docModel extends model
{
if(!in_array($type, array('product', 'project'))) return '';
- $currentModule = $this->app->getModuleName();
- $currentMethod = $this->app->getMethodName();
+ $currentModule = $this->app->rawModule;
+ $currentMethod = $this->app->rawMethod;
$dropMenuLink = helper::createLink('doc', 'ajaxGetDropMenu', "objectType=$type&objectID=$objectID&module=$currentModule&method=$currentMethod");
$output = "