summaryrefslogtreecommitdiffstats
path: root/idrop-web/grails-app/views
diff options
context:
space:
mode:
authormconway <michael.c.conway@gmail.com>2013-02-13 18:07:57 (GMT)
committer mconway <michael.c.conway@gmail.com>2013-02-13 18:07:57 (GMT)
commit48b81918fe38273e7016fc3b80002a9ca8d79d74 (patch)
tree875fa359de6e472e6e29c9cfdd88d7d0b2f36799 /idrop-web/grails-app/views
parent2c18e72121bac1adc3d4b6249cf2473c7d3ae6ac (diff)
parent024d06d3a330c0d3a787632347ec8748dc930100 (diff)
downloadQCG-Data-48b81918fe38273e7016fc3b80002a9ca8d79d74.zip
QCG-Data-48b81918fe38273e7016fc3b80002a9ca8d79d74.tar.gz
QCG-Data-48b81918fe38273e7016fc3b80002a9ca8d79d74.tar.bz2
[#1191] merge for idrop web
Diffstat (limited to 'idrop-web/grails-app/views')
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/audit/auditDetails.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/audit/auditInfo.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/audit/auditNoAccess.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/audit/auditTable.gsp0
-rwxr-xr-xidrop-web/grails-app/views/browse/_browseDetailsToolbar.gsp10
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/_browseTabContent.gsp5
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/_collectionInfoToolbar.gsp82
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/_dataObjectInfoToolbar.gsp77
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/browseDetails.gsp11
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/collectionInfo.gsp9
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/collectionInfoMini.gsp12
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/dataObjectInfo.gsp2
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/dataObjectInfoMini.gsp12
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/galleryView.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/index.gsp6
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/loginInfo.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/newFolderDialog.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/noInfo.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/publicLinkDialog.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/renameDialog.gsp0
-rwxr-xr-xidrop-web/grails-app/views/browse/starDialog.gsp40
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/common/_browseLegend.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/common/_cssAndJs.gsp1
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/common/_footer.gsp26
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/common/_messages.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/common/_secondarymain.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/common/_topToolbar.gsp6
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/common/_topbar.gsp45
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/error.gsp2
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/file/deleteResult.gsp0
-rwxr-xr-xidrop-web/grails-app/views/file/quickUploadDialog.gsp45
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/file/uploadDialog.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/home/index.gsp142
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/home/link.gsp0
-rwxr-xr-xidrop-web/grails-app/views/home/noInfo.gsp3
-rw-r--r--idrop-web/grails-app/views/home/quickViewList.gsp46
-rw-r--r--idrop-web/grails-app/views/home/shareQuickViewList.gsp45
-rw-r--r--idrop-web/grails-app/views/home/shareWithMeQuickViewList.gsp48
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/idropLite/appletLoader.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/layouts/basic.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/layouts/main.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/layouts/mainNoSidebar.gsp12
-rw-r--r--idrop-web/grails-app/views/login/defaultStorageResource.gsp50
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/login/login.gsp0
-rwxr-xr-xidrop-web/grails-app/views/login/passwordChange.gsp45
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/metadata/metadataDetails.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/metadata/metadataDialog.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/metadata/metadataTable.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/profile/_profileToolbar.gsp0
-rw-r--r--idrop-web/grails-app/views/profile/changePasswordDialog.gsp37
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/profile/index.gsp189
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/profile/noProfileData.gsp0
-rw-r--r--idrop-web/grails-app/views/profile/profileData.gsp38
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/search/searchResult.gsp86
-rw-r--r--idrop-web/grails-app/views/sharing/_sharingPanel.gsp41
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/sharing/aclDetails.gsp68
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/sharing/aclDialog.gsp2
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/sharing/aclTable.gsp0
-rwxr-xr-xidrop-web/grails-app/views/sharing/addShareDialog.gsp40
-rw-r--r--idrop-web/grails-app/views/sharing/sharingPanelWrapper.gsp3
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/sharing/userPanel.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/shoppingCart/cartDetails.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/shoppingCart/index.gsp0
-rwxr-xr-xidrop-web/grails-app/views/tags/index.gsp64
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/tags/tagCloud.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/ticket/ticketDetails.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/ticket/ticketPulldown.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/ticket/ticketTable.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/ticketAccess/ticketAccessCollection.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/ticketAccess/ticketAccessDataObject.gsp2
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/ticketAccess/uploadToTicketCollection.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/user/index.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/user/userInfoDialog.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/user/userList.gsp6
74 files changed, 1035 insertions, 323 deletions
diff --git a/idrop-web/grails-app/views/audit/auditDetails.gsp b/idrop-web/grails-app/views/audit/auditDetails.gsp
index 941e129..941e129 100644..100755
--- a/idrop-web/grails-app/views/audit/auditDetails.gsp
+++ b/idrop-web/grails-app/views/audit/auditDetails.gsp
diff --git a/idrop-web/grails-app/views/audit/auditInfo.gsp b/idrop-web/grails-app/views/audit/auditInfo.gsp
index 0eb9335..0eb9335 100644..100755
--- a/idrop-web/grails-app/views/audit/auditInfo.gsp
+++ b/idrop-web/grails-app/views/audit/auditInfo.gsp
diff --git a/idrop-web/grails-app/views/audit/auditNoAccess.gsp b/idrop-web/grails-app/views/audit/auditNoAccess.gsp
index 4fb2d85..4fb2d85 100644..100755
--- a/idrop-web/grails-app/views/audit/auditNoAccess.gsp
+++ b/idrop-web/grails-app/views/audit/auditNoAccess.gsp
diff --git a/idrop-web/grails-app/views/audit/auditTable.gsp b/idrop-web/grails-app/views/audit/auditTable.gsp
index e0e7672..e0e7672 100644..100755
--- a/idrop-web/grails-app/views/audit/auditTable.gsp
+++ b/idrop-web/grails-app/views/audit/auditTable.gsp
diff --git a/idrop-web/grails-app/views/browse/_browseDetailsToolbar.gsp b/idrop-web/grails-app/views/browse/_browseDetailsToolbar.gsp
new file mode 100755
index 0000000..6de106f
--- /dev/null
+++ b/idrop-web/grails-app/views/browse/_browseDetailsToolbar.gsp
@@ -0,0 +1,10 @@
+<div id="browseDetailsToolbar" >
+<!-- <div class="pagination">
+ <ul>
+ <g:each in="${pagingActions.pagingIndexEntries}">
+ <li><a href="#">${it.representation}</a></li>
+ </g:each>
+ </ul>
+</div> -->
+</div>
+ \ No newline at end of file
diff --git a/idrop-web/grails-app/views/browse/_browseTabContent.gsp b/idrop-web/grails-app/views/browse/_browseTabContent.gsp
index dfd60b9..a4e775e 100644..100755
--- a/idrop-web/grails-app/views/browse/_browseTabContent.gsp
+++ b/idrop-web/grails-app/views/browse/_browseTabContent.gsp
@@ -19,6 +19,7 @@
<div id="dataTreeDivWrapper" class="ui-layout-west" style="width: 25%; height: 100%; overflow:hidden;">
<div id="dataTreeToolbar" style="width:100%; height:4%;display:block; margin:5px;" class="fg-toolbar">
+
<div id="dataTreeMenu">
<button type="button" id="refreshTreeButton"
@@ -52,3 +53,7 @@
</div> <!-- infoDivOuter -->
</div> <!-- data tree view -->
</div> <!-- browser -->
+ <script>
+
+
+ </script>
diff --git a/idrop-web/grails-app/views/browse/_collectionInfoToolbar.gsp b/idrop-web/grails-app/views/browse/_collectionInfoToolbar.gsp
index 12c68a3..759543d 100644..100755
--- a/idrop-web/grails-app/views/browse/_collectionInfoToolbar.gsp
+++ b/idrop-web/grails-app/views/browse/_collectionInfoToolbar.gsp
@@ -5,8 +5,17 @@
<div id="collectionInfoButtonGroup1" class="btn-group">
<button id="setCollectionAsRoot" onclick="cibSetCollectionAsRoot()"><img class="icon-hand-left"/><g:message
code="text.set.as.root" /></button>
- <button id="starCollection" onclick="cibStarCollection()"><img class="icon-star"/><g:message
+
+
+ <g:if test="${irodsStarredFileOrCollection}">
+ <button id="unstarCollection" onclick="cibUnstarCollection()"><img class="icon-star"/><g:message
+ code="text.unstar" /></button>
+ </g:if>
+ <g:else>
+ <button id="starCollection" onclick="cibStarCollection()"><img class="icon-star-empty"/><g:message
code="text.star" /></button>
+ </g:else>
+
</div>
<div id="collectionInfoButtonGroup2" class="btn-group">
@@ -109,5 +118,76 @@
deleteViaToolbarGivenPath(path);
}
+
+ /**
+ * favorite, or 'star' the collection currently displayed in the info view
+ */
+ function cibStarCollection() {
+ var path = $("#infoAbsPath").val();
+ if (path == null) {
+ showErrorMessage(jQuery.i18n.prop('msg.path.missing'));
+ return false;
+ }
+
+ if (path == null) {
+ setErrorMessage("No path was selected, use the tree to select an iRODS collection or file to star"); // FIXME:
+ // i18n
+ return;
+ }
+
+ lcShowBusyIconInDiv("#infoDialogArea");
+ var url = "/browse/prepareStarDialog";
+
+ var params = {
+ absPath : path
+ }
+
+ lcSendValueWithParamsAndPlugHtmlInDiv(url, params, "#infoDialogArea", null);
+ }
+
+ /**
+ * unfavorite favorite, or 'star' the collection currently displayed in the info view
+ */
+ function cibUnstarCollection() {
+ var path = $("#infoAbsPath").val();
+ if (path == null) {
+ showErrorMessage(jQuery.i18n.prop('msg.path.missing'));
+ return false;
+ }
+
+ if (path == null) {
+ setErrorMessage("No path was selected, use the tree to select an iRODS collection or file to unstar"); // FIXME:
+ // i18n
+ return;
+ }
+
+ lcShowBusyIconInDiv("#infoDialogArea");
+ var url = "/browse/unstarFile";
+
+ var params = {
+ absPath : path
+ }
+
+ showBlockingPanel();
+
+ var jqxhr = $.post(context + url, params,
+ function(data, status, xhr) {
+ }, "html").success(
+ function(returnedData, status, xhr) {
+ var continueReq = checkForSessionTimeout(returnedData, xhr);
+ if (!continueReq) {
+ return false;
+ }
+ setMessage(jQuery.i18n.prop('msg_file_unstarred'));
+ updateBrowseDetailsForPathBasedOnCurrentModel(selectedPath);
+ closeStarDialog();
+ unblockPanel();
+ }).error(function(xhr, status, error) {
+ setErrorMessage(xhr.responseText);
+ closeStarDialog();
+ unblockPanel();
+ });
+
+ }
</script> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/browse/_dataObjectInfoToolbar.gsp b/idrop-web/grails-app/views/browse/_dataObjectInfoToolbar.gsp
index 3116428..e0a673e 100644..100755
--- a/idrop-web/grails-app/views/browse/_dataObjectInfoToolbar.gsp
+++ b/idrop-web/grails-app/views/browse/_dataObjectInfoToolbar.gsp
@@ -3,8 +3,14 @@
<div id="dataObjectInfoToolbarMenu" class="btn-toolbar">
<div id="dataObjectInfoButtonGroup1" class="btn-group">
- <button id="starFile" onclick="dibStarFile()"><img class="icon-star"/><g:message
+ <g:if test="${irodsStarredFileOrCollection}">
+ <button id="unstarDataObject" onclick="dibUnstarFile()"><img class="icon-star"/><g:message
+ code="text.unstar" /></button>
+ </g:if>
+ <g:else>
+ <button id="starDataobject" onclick="dibStarFile()"><img class="icon-star-empty"/><g:message
code="text.star.file" /></button>
+ </g:else>
<button id="downloadFile" onclick="dibDownloadFile()"><img class="icon-download"/><g:message
code="text.download" /></button>
<button id="addToCart" onclick="dibAddToCart()"><img class="icon-shopping-cart"/><g:message
@@ -56,5 +62,74 @@ function dibDeleteFile() {
deleteViaToolbarGivenPath(path);
}
+/**
+* favorite, or 'star' the data object currently displayed in the info view
+*/
+function dibStarFile() {
+ var path = $("#infoAbsPath").val();
+ if (path == null) {
+ showErrorMessage(jQuery.i18n.prop('msg.path.missing'));
+ return false;
+ }
+
+ if (path == null) {
+ setErrorMessage("No path was selected, use the tree to select an iRODS collection or file to star"); // FIXME:
+ // i18n
+ return;
+ }
+
+ lcShowBusyIconInDiv("#infoDialogArea");
+ var url = "/browse/prepareStarDialog";
+
+ var params = {
+ absPath : path
+ }
+
+ lcSendValueWithParamsAndPlugHtmlInDiv(url, params, "#infoDialogArea", null);
+}
+
+/**
+* unfavorite favorite, or 'star' the collection currently displayed in the info view
+*/
+function dibUnstarFile() {
+ var path = $("#infoAbsPath").val();
+ if (path == null) {
+ showErrorMessage(jQuery.i18n.prop('msg.path.missing'));
+ return false;
+ }
+
+ if (path == null) {
+ setErrorMessage("No path was selected, use the tree to select an iRODS collection or file to unstar"); // FIXME:
+ // i18n
+ return;
+ }
+
+ showBlockingPanel();
+ var url = "/browse/unstarFile";
+
+ var params = {
+ absPath : path
+ }
+
+ var jqxhr = $.post(context + url, params,
+ function(data, status, xhr) {
+ }, "html").success(
+ function(returnedData, status, xhr) {
+ var continueReq = checkForSessionTimeout(returnedData, xhr);
+ if (!continueReq) {
+ return false;
+ }
+ setMessage(jQuery.i18n.prop('msg_file_unstarred'));
+ updateBrowseDetailsForPathBasedOnCurrentModel(selectedPath);
+ closeStarDialog();
+ unblockPanel();
+ }).error(function(xhr, status, error) {
+ setErrorMessage(xhr.responseText);
+ closeStarDialog();
+ unblockPanel();
+ });
+}
+
+
</script> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/browse/browseDetails.gsp b/idrop-web/grails-app/views/browse/browseDetails.gsp
index 6b57abd..24a7a1e 100644..100755
--- a/idrop-web/grails-app/views/browse/browseDetails.gsp
+++ b/idrop-web/grails-app/views/browse/browseDetails.gsp
@@ -11,12 +11,11 @@
<div id="infoDialogArea">
<!-- no empty divs -->
</div>
- <div id="legendAreaContainer">
- <i class="icon-question-sign" id="iconLegend" onmouseover="showLegend()" onmouseout="hideLegend()"/><g:message code="text.action.help" />
- <div id="legend" style="display:none;">
- <g:render template="/common/browseLegend" />
- </div>
- </div>
+ <!-- render the paging controls if needed -->
+ <g:if test="${pagingActions.paging}">
+ <g:render template="/browse/browseDetailsToolbar" />
+ </g:if>
+
<div id="detailsTopSection" >
<form id="browseDetailsForm" name="browseDetailsForm">
<table class="table table-striped table-hover" cellspacing="0" cellpadding="0" border="0"
diff --git a/idrop-web/grails-app/views/browse/collectionInfo.gsp b/idrop-web/grails-app/views/browse/collectionInfo.gsp
index 8b93c88..6308786 100644..100755
--- a/idrop-web/grails-app/views/browse/collectionInfo.gsp
+++ b/idrop-web/grails-app/views/browse/collectionInfo.gsp
@@ -23,7 +23,7 @@
<ul class="nav nav-tabs" id="infoTabs">
<li class="active"><a href="#info" id="infoTab"><g:message code="text.info" /></a></li>
<li><a href="#metadata" id="metadataTab"><g:message code="text.metadata" /></a></li>
- <li><a href="#permissions" id="permissionTab"><g:message code="text.permissions" /></a></li>
+ <li><a href="#permissions" id="permissionTab"><g:message code="text.sharing" /></a></li>
<g:if test="${grailsApplication.config.idrop.config.use.tickets==true}">
<li><a href="#tickets" id="ticketTab"><g:message code="text.tickets" /></a></li>
</g:if>
@@ -90,7 +90,7 @@
</div>
<div>
<div></div>
- <div><button type="button" id="updateTags" value="updateTags" onclick="callUpdateTags()">Update Tags</button></div>
+ <div><button type="button" id="updateTags" value="updateTags" onclick="updateTags()">Update Tags</button></div>
</div>
</div>
@@ -123,6 +123,7 @@
$("#menuUpload").show();
$("#menuBulkUpload").show();
+
$('#infoTabs a').click(function (e) {
e.preventDefault();
$(this).tab('show');
@@ -152,8 +153,4 @@
});
- function callUpdateTags() {
- updateTags();
- }
-
</script>
diff --git a/idrop-web/grails-app/views/browse/collectionInfoMini.gsp b/idrop-web/grails-app/views/browse/collectionInfoMini.gsp
index 8e2ab67..5405266 100644..100755
--- a/idrop-web/grails-app/views/browse/collectionInfoMini.gsp
+++ b/idrop-web/grails-app/views/browse/collectionInfoMini.gsp
@@ -42,7 +42,9 @@
</div>
<div>
<div></div>
- <div><button type="button" id="updateTags" value="updateTags" onclick="callUpdateTags()">Update Tags</button></div>
+
+ <div><button type="button" id="updateTags" value="updateTags" onclick="updateTagsFromCollectionInfoMini()">Update Tags</button></div>
+
</div>
<div>
<div><label>Created At:</label></div>
@@ -94,8 +96,12 @@
<script>
-function callUpdateTags() {
- updateTags();
+function updateTagsFromCollectionInfoMini() {
+ var infoTagsVal = $("#infoTags").val();
+ var infoCommentVal = $("#infoComment").val();
+ var absPathVal = $("#infoAbsPath").val();
+
+ updateTagsAtPath(absPathVal, infoTagsVal, infoCommentVal);
}
</script>
diff --git a/idrop-web/grails-app/views/browse/dataObjectInfo.gsp b/idrop-web/grails-app/views/browse/dataObjectInfo.gsp
index 8785a7d..ca993a4 100644..100755
--- a/idrop-web/grails-app/views/browse/dataObjectInfo.gsp
+++ b/idrop-web/grails-app/views/browse/dataObjectInfo.gsp
@@ -123,7 +123,7 @@
</div>
<div>
<div></div>
- <div><button type="button" id="updateTags" value="updateTags" onclick="callUpdateTags()">Update Tags</button></div>
+ <div><button type="button" id="updateTags" value="updateTags" onclick="updateTags()">Update Tags</button></div>
</div>
</div>
</div>
diff --git a/idrop-web/grails-app/views/browse/dataObjectInfoMini.gsp b/idrop-web/grails-app/views/browse/dataObjectInfoMini.gsp
index 286a875..906429f 100644..100755
--- a/idrop-web/grails-app/views/browse/dataObjectInfoMini.gsp
+++ b/idrop-web/grails-app/views/browse/dataObjectInfoMini.gsp
@@ -74,7 +74,7 @@
</div>
<div>
<div></div>
- <div><button type="button" id="updateTags" value="updateTags" onclick="callUpdateTags()">Update Tags</button></div>
+ <div><button type="button" id="updateTags" value="updateTags" onclick="updateTagsFromDataObjectInfoMini()">Update Tags</button></div>
</div>
<div>
<div><label><g:message code="text.created" />:</label></div>
@@ -136,6 +136,16 @@
</div><!-- table -->
</div><!-- toggle html area -->
+<script>
+
+function updateTagsFromDataObjectInfoMini() {
+ var infoTagsVal = $("#infoTags").val();
+ var infoCommentVal = $("#infoComment").val();
+ var absPathVal = $("#infoAbsPath").val();
+
+ updateTagsAtPath(absPathVal, infoTagsVal, infoCommentVal);
+}
+
<g:if test="${getThumbnail}">
<script>
diff --git a/idrop-web/grails-app/views/browse/galleryView.gsp b/idrop-web/grails-app/views/browse/galleryView.gsp
index 8ffd167..8ffd167 100644..100755
--- a/idrop-web/grails-app/views/browse/galleryView.gsp
+++ b/idrop-web/grails-app/views/browse/galleryView.gsp
diff --git a/idrop-web/grails-app/views/browse/index.gsp b/idrop-web/grails-app/views/browse/index.gsp
index 149134b..c69296e 100644..100755
--- a/idrop-web/grails-app/views/browse/index.gsp
+++ b/idrop-web/grails-app/views/browse/index.gsp
@@ -39,5 +39,11 @@
retrieveBrowserFirstView(mode, startPath);
}
+ $(window).bind( 'hashchange', function(e) {
+
+ processStateChange( $.bbq.getState());
+
+ });
+
});
</script> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/browse/loginInfo.gsp b/idrop-web/grails-app/views/browse/loginInfo.gsp
index 3696156..3696156 100644..100755
--- a/idrop-web/grails-app/views/browse/loginInfo.gsp
+++ b/idrop-web/grails-app/views/browse/loginInfo.gsp
diff --git a/idrop-web/grails-app/views/browse/newFolderDialog.gsp b/idrop-web/grails-app/views/browse/newFolderDialog.gsp
index 55cea87..55cea87 100644..100755
--- a/idrop-web/grails-app/views/browse/newFolderDialog.gsp
+++ b/idrop-web/grails-app/views/browse/newFolderDialog.gsp
diff --git a/idrop-web/grails-app/views/browse/noInfo.gsp b/idrop-web/grails-app/views/browse/noInfo.gsp
index 64ec299..64ec299 100644..100755
--- a/idrop-web/grails-app/views/browse/noInfo.gsp
+++ b/idrop-web/grails-app/views/browse/noInfo.gsp
diff --git a/idrop-web/grails-app/views/browse/publicLinkDialog.gsp b/idrop-web/grails-app/views/browse/publicLinkDialog.gsp
index 50d3efd..50d3efd 100644..100755
--- a/idrop-web/grails-app/views/browse/publicLinkDialog.gsp
+++ b/idrop-web/grails-app/views/browse/publicLinkDialog.gsp
diff --git a/idrop-web/grails-app/views/browse/renameDialog.gsp b/idrop-web/grails-app/views/browse/renameDialog.gsp
index 3c7c78a..3c7c78a 100644..100755
--- a/idrop-web/grails-app/views/browse/renameDialog.gsp
+++ b/idrop-web/grails-app/views/browse/renameDialog.gsp
diff --git a/idrop-web/grails-app/views/browse/starDialog.gsp b/idrop-web/grails-app/views/browse/starDialog.gsp
new file mode 100755
index 0000000..ee6932a
--- /dev/null
+++ b/idrop-web/grails-app/views/browse/starDialog.gsp
@@ -0,0 +1,40 @@
+<div id="starDialog">
+
+ <div class="modal-header">
+ <h3><g:message code="heading.star.dialog"/></h3>
+ </div>
+
+ <div class="modal-body">
+
+ <fieldset id="verticalForm">
+ <label for="fileName"><g:message code="text.name" />:</label>
+ ${absPath}
+
+ <label for="description"><g:message code="text.description" />:</label>
+ <g:textArea name="description" value="" rows="5" cols="50"/>
+
+ <g:hiddenField name="absPath" id="absPath" value = "${absPath}" />
+ </fieldset>
+ </div>
+
+ <div class="modal-footer">
+ <div id="starDialogToolbar">
+ <div id="starDialogMenu" class="pull-right">
+ <button type="button" id="starFileButton"
+ value="update"
+ onclick="submitStarDialog()")><g:message code="default.button.update.label" /></button>
+ <button type="button" id="cancelStarButton"
+ value="cancelStar"
+ onclick="closeStarDialog()")><g:message code="text.cancel" /></button>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+<script>
+
+ $(function() {
+ $("#starDialog").dialog({width:500, modal:true});
+ });
+
+</script>
diff --git a/idrop-web/grails-app/views/common/_browseLegend.gsp b/idrop-web/grails-app/views/common/_browseLegend.gsp
index fbcdc59..fbcdc59 100644..100755
--- a/idrop-web/grails-app/views/common/_browseLegend.gsp
+++ b/idrop-web/grails-app/views/common/_browseLegend.gsp
diff --git a/idrop-web/grails-app/views/common/_cssAndJs.gsp b/idrop-web/grails-app/views/common/_cssAndJs.gsp
index c058386..a516319 100644..100755
--- a/idrop-web/grails-app/views/common/_cssAndJs.gsp
+++ b/idrop-web/grails-app/views/common/_cssAndJs.gsp
@@ -2,6 +2,7 @@
<title><g:layoutTitle default="iDrop-web - iRODS Cloud Browser" /></title>
<link rel="stylesheet" href="${resource(dir:'css',file:'style.css')}" />
<link rel="stylesheet" href="${resource(dir:'css',file:'bootstrap.css')}" />
+ <link rel="stylesheet" href="${resource(dir:'css',file:'bootstrap-responsive.min.css')}" />
<link rel="stylesheet" href="${resource(dir:'css',file:'jqcloud.css')}" />
<link rel="stylesheet" href="${resource(dir:'css',file:'layout-default-latest.css')}" />
<link rel="stylesheet" href="${resource(dir:'css',file:'jquery.fileupload-ui.css')}" />
diff --git a/idrop-web/grails-app/views/common/_footer.gsp b/idrop-web/grails-app/views/common/_footer.gsp
index 3879cb7..9df765a 100644..100755
--- a/idrop-web/grails-app/views/common/_footer.gsp
+++ b/idrop-web/grails-app/views/common/_footer.gsp
@@ -1,30 +1,6 @@
<div class="container-fluid">
-<g:ifAuthenticated>
- <div class="row-fluid">
-
- <div class="span8">
- <span id="topBarLoginInfo" ></span>
- </div>
- <div class="span2 offset1">
- <button id="logoutButton" name="logoutButton"
- onclick="logout()")><g:message code="text.logout" /></button>
- </div>
- </div>
- </g:ifAuthenticated>
-
<div class="span12">
- <center>iDrop-web developed by the DICE Group, developers of the <a href="http://www.irods.org">iRODS Data Grid</a> -- iDrop Project Page available <a href="https://code.renci.org/jargon">here</a> - version: ${grailsApplication.metadata.'app.version'} jargon:${org.irods.jargon.core.utils.JargonVersion.VERSION }</center>
+ <center>iDrop-web developed by the DICE Group, developers of the <a href="http://www.irods.org">iRODS Data Grid</a> -- iDrop Project Page available <a href="https://code.renci.org/gf/project/irodsidrop">here</a> - version: ${grailsApplication.metadata.'app.version'} jargon:${org.irods.jargon.core.utils.JargonVersion.VERSION }</center>
</div>
</div>
</div>
-
-<script type="text/javascript">
-$(function() {
- var url = "/browse/showLoginBar";
- lcSendValueAndCallbackHtmlAfterErrorCheck(url, "#topBarLoginInfo",
- "#topBarLoginInfo", null);
-});
-
-
-
-</script>
diff --git a/idrop-web/grails-app/views/common/_messages.gsp b/idrop-web/grails-app/views/common/_messages.gsp
index 9476c55..9476c55 100644..100755
--- a/idrop-web/grails-app/views/common/_messages.gsp
+++ b/idrop-web/grails-app/views/common/_messages.gsp
diff --git a/idrop-web/grails-app/views/common/_secondarymain.gsp b/idrop-web/grails-app/views/common/_secondarymain.gsp
index 79023bb..79023bb 100644..100755
--- a/idrop-web/grails-app/views/common/_secondarymain.gsp
+++ b/idrop-web/grails-app/views/common/_secondarymain.gsp
diff --git a/idrop-web/grails-app/views/common/_topToolbar.gsp b/idrop-web/grails-app/views/common/_topToolbar.gsp
index dae0926..251c8e6 100644..100755
--- a/idrop-web/grails-app/views/common/_topToolbar.gsp
+++ b/idrop-web/grails-app/views/common/_topToolbar.gsp
@@ -40,10 +40,10 @@
browseOptionVal = view;
- var state = {};
+ //var state = {};
- state["browseOptionVal"] = browseOptionVal;
- $.bbq.pushState(state);
+ //state["browseOptionVal"] = browseOptionVal;
+ //$.bbq.pushState(state);
}
diff --git a/idrop-web/grails-app/views/common/_topbar.gsp b/idrop-web/grails-app/views/common/_topbar.gsp
index 2763cd1..b1184f2 100644..100755
--- a/idrop-web/grails-app/views/common/_topbar.gsp
+++ b/idrop-web/grails-app/views/common/_topbar.gsp
@@ -12,27 +12,36 @@
<g:if test="${grailsApplication.config.idrop.config.use.userprofile==true}">
<li id="topbarPreferences" class="topbarItem"><g:link controller="profile" action="index">Profile</g:link></li>
</g:if>
-
-
-
-
+ <li id="topbarSearch" class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+ <g:message code="text.search" /><b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="#" id="searchFileName" onclick="xxx()")>Search By File Name</a></li>
+ <li><a href="#" id="searchTag"><g:link controller="tags" action="index"><g:message code="text.tags" /></g:link></li>
+ <li><a href="#" id="searchMetadata" onclick="xxx()")>Search By Metadata</a></li>
+ </ul>
+ </li>
+ <li id="topbarTools" class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+ <g:message code="text.tools" /><b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="${grailsApplication.config.idrop.config.idrop.jnlp}" id="idropDesktop")>iDrop Desktop</a></li>
+ </ul>
+ </li>
+
</g:ifAuthenticated>
<li id="topbarAccount" class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
- <g:message code="text.account" /><b class="caret"></b></a>
+ <g:message code="text.account" /> ( <span id="accountZoneAndUserDisplay"><g:accountInfo /></span> )<b class="caret"></b></a>
<ul class="dropdown-menu">
-
-
<g:ifAuthenticated>
<li><a href="#" id="logoutButton" onclick="logout()")><g:message code="text.logout" /></a></li>
+ <li><a href="#" id="changePasswordButton"><g:link controller="login" action="changePasswordForm"><g:message code="text.change.password" /></g:link></a></li>
+ <li><a href="#" id="setDefaultResourceButton"><g:link controller="login" action="defaultResource"><g:message code="text.set.default.resource" /></g:link></a></li>
</g:ifAuthenticated>
</ul>
-
-
-
-
</li>
<g:ifAuthenticated>
@@ -40,9 +49,19 @@
</g:ifAuthenticated>
</ul>
-
-
</div>
</div>
+ <g:ifAuthenticated>
+<script>
+ var currentZone = "${irodsAccount?.zone}";
+ var currentUser = "${irodsAccount?.userName}";
+ //$(function() {
+ //$("#accountZoneAndUserDisplay").html(currentZone + ":" + currentUser);
+// });
+ </g:ifAuthenticated>
+</script>
+
+
+
diff --git a/idrop-web/grails-app/views/error.gsp b/idrop-web/grails-app/views/error.gsp
index edada71..9d65afe 100644..100755
--- a/idrop-web/grails-app/views/error.gsp
+++ b/idrop-web/grails-app/views/error.gsp
@@ -1 +1 @@
-<g:message code="error.some.error.occurred" />
+${request.'javax.servlet.error.message'}
diff --git a/idrop-web/grails-app/views/file/deleteResult.gsp b/idrop-web/grails-app/views/file/deleteResult.gsp
index b851396..b851396 100644..100755
--- a/idrop-web/grails-app/views/file/deleteResult.gsp
+++ b/idrop-web/grails-app/views/file/deleteResult.gsp
diff --git a/idrop-web/grails-app/views/file/quickUploadDialog.gsp b/idrop-web/grails-app/views/file/quickUploadDialog.gsp
new file mode 100755
index 0000000..9afe18c
--- /dev/null
+++ b/idrop-web/grails-app/views/file/quickUploadDialog.gsp
@@ -0,0 +1,45 @@
+<div id="uploadDialogDiv">
+
+
+ <div class="modal-header">
+ <h3><g:message code="heading.upload.dialog"/></h3>
+ </div>
+
+ <div class="modal-body">
+ <g:form controller="quickUpload" action="upload" method="post"
+ name="uploadForm" enctype="multipart/form-data"
+ target="upload_target">
+
+ <label><g:message
+ code="text.parent" />
+ ${irodsTargetCollection}</label>
+ <g:hiddenField id="collectionParentName" name="collectionParentName" value="${irodsTargetCollection}"/>
+ <br />
+ <div id="file_upload_container">
+ <input type="file" name="file">
+ <button type="button" id="upload" value="upload"
+ onclick="upload()")>Upload</button>
+ </div>
+ <div id="upload_message_area">
+ </div>
+ <table id="files"></table>
+
+ </g:form>
+ </div>
+
+ <div class="modal-footer">
+ <button type="button" id="cancelUpload"
+ value="cancelUpload"
+ onclick="closeUploadDialog()")><g:message code="text.cancel" /></button>
+ </div>
+
+</div>
+
+<script>
+function closeUploadDialog() {
+ $("#uploadDialog").dialog('close');
+ $("#uploadDialog").remove();
+}
+
+</script>
+
diff --git a/idrop-web/grails-app/views/file/uploadDialog.gsp b/idrop-web/grails-app/views/file/uploadDialog.gsp
index c07c463..c07c463 100644..100755
--- a/idrop-web/grails-app/views/file/uploadDialog.gsp
+++ b/idrop-web/grails-app/views/file/uploadDialog.gsp
diff --git a/idrop-web/grails-app/views/home/index.gsp b/idrop-web/grails-app/views/home/index.gsp
index f511862..40fd5b4 100644..100755
--- a/idrop-web/grails-app/views/home/index.gsp
+++ b/idrop-web/grails-app/views/home/index.gsp
@@ -2,81 +2,91 @@
<meta name="layout" content="mainNoSidebar" />
<g:javascript library="mydrop/home" />
</head>
-<div class="row-fluid">
- <div class="span12">
- <center><h1>iDrop Dashboard</h1></center>
- </div>
-<div class="row-fluid">
- <div class="span1 offset4" ><g:img dir="images" file="upload.png" style="margin-top:40px;" width="100" height="100"/></div>
- <div class="span4 well"><h2>Quick upload</h2> - Use this option to quickly upload files to iRODS, automatically organized based on rules on the current grid.</div>
-</div>
-<div class="row-fluid">
- <div class="span12">
- <center><h1>iDrop Quick Folders</h1></center>
+<div>
+
+ <div id="uploadDialog">
+ <!-- target div for creating upload dialogs -->
</div>
-</div>
-<g:render template="/common/browseLegend" />
-<div class="row-fluid">
- <div class="span8 offset2">
- <table class="table table-striped table-hover">
- <thead>
- <tr>
- <th></th>
- <th>Action</th>
- <th>Name</th>
- <th>Description</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><g:img dir="images" file="folder_icon.png" width="20" height="20"/></td>
- <td><i class="icon-folder-open"></i><i class="icon-upload"></i></td>
- <td>Some Name</td>
- <td>Description text</td>
- </tr>
- <tr>
- <td><g:img dir="images" file="folder_icon.png" width="20" height="20"/></td>
- <td><i class="icon-folder-open"></i><i class="icon-upload"></i></td>
- <td>Some Name</td>
- <td>Description text</td>
- </tr>
- <tr>
- <td><g:img dir="images" file="folder_icon.png" width="20" height="20"/></td>
- <td><i class="icon-folder-open"></i><i class="icon-upload"></i></td>
- <td>Some Name</td>
- <td>Description text</td>
- </tr>
- <tr>
- <td><g:img dir="images" file="folder_icon.png" width="20" height="20"/></td>
- <td><i class="icon-folder-open"></i><i class="icon-upload"></i></td>
- <td>Some Name</td>
- <td>Description text</td>
- </tr>
- <tr>
- <td><g:img dir="images" file="folder_icon.png" width="20" height="20"/></td>
- <td><i class="icon-folder-open"></i><i class="icon-upload"></i></td>
- <td>Some Name</td>
- <td>Description text</td>
- </tr>
- <tr>
- <td><g:img dir="images" file="folder_icon.png" width="20" height="20"/></td>
- <td><i class="icon-folder-open"></i><i class="icon-upload"></i></td>
- <td>Some Name</td>
- <td>Description text</td>
- </tr>
- </tbody>
-
- </table>
+ <div class="row-fluid">
+ <div class="span2">
+ <!-- nav for table -->
+ <ul class="nav nav-list">
+ <li class="nav-header"><g:message code="text.tools" /></li>
+ <li id="quickUpload" class="quicknav"><a href="#" onclick="quickUploadFromHome()"><g:message code="text.quick.upload" /></a></li>
+ <li class="nav-header"><g:message code="text.starred" /></li>
+ <li id="quickStarredFiles" class="quicknav"><a href="#" onclick="quickViewShowStarredFiles()"><g:message code="text.starred.files" /></a></li>
+ <li id="quickStarredFolders" class="quicknav"><a href="#" onclick="quickViewShowStarredFolders()"> <g:message code="text.starred.folders" /></a></li>
+ <g:if test="${shareSupported}">
+ <li class="nav-header">Shared</li>
+ <li id="quickSharedByMeFolders" class="quicknav"><a href="#" onclick="quickViewShowFoldersSharedByMe()"><g:message code="text.folders.shared.by.me" /></a></li>
+ <li id="quickSharedWithMeFolders" class="quicknav"><a href="#" onclick="quickViewShowFoldersSharedWithMe()"><g:message code="text.folders.shared.with.me" /></a></li>
+ </g:if>
+ </ul>
+ </div>
+ <div id="quickViewListContainer" class="span8"></div>
</div>
</div>
<script type="text/javascript">
-
$(document).ready(function() {
$.ajaxSetup({
cache : false
});
$("#topbarHome").addClass("active");
+ quickViewShowStarredFiles();
});
-</script>
+
+ function quickViewShowStarredFolders() {
+ resetQuicknav();
+ $("#quickStarredFolders").addClass("active");
+ var url = "/home/starredCollections";
+ var params = {
+
+ }
+ lcSendValueWithParamsAndPlugHtmlInDiv(url, params, "#quickViewListContainer", null);
+ }
+
+ function quickViewShowStarredFiles() {
+ resetQuicknav();
+ $("#quickStarredFiles").addClass("active");
+ var url = "/home/starredDataObjects";
+ var params = {
+
+ }
+ lcSendValueWithParamsAndPlugHtmlInDiv(url, params, "#quickViewListContainer", null);
+ }
+
+ function quickViewShowFoldersSharedByMe() {
+ resetQuicknav();
+ $("#quickSharedByMeFolders").addClass("active");
+ var url = "/home/sharedCollectionsByMe";
+ var params = {
+
+ }
+ lcSendValueWithParamsAndPlugHtmlInDiv(url, params, "#quickViewListContainer", null);
+ }
+
+ function quickViewShowFoldersSharedWithMe() {
+ resetQuicknav();
+ $("#quickSharedWithMeFolders").addClass("active");
+ var url = "/home/sharedCollectionsWithMe";
+ var params = {
+
+ }
+ lcSendValueWithParamsAndPlugHtmlInDiv(url, params, "#quickViewListContainer", null);
+ }
+
+ function resetQuicknav() {
+ $(".quicknav").removeClass("active");
+ }
+
+ function quickUploadFromHome() {
+
+ showQuickUploadDialog();
+
+
+ }
+
+
+</script> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/home/link.gsp b/idrop-web/grails-app/views/home/link.gsp
index f1e7e87..f1e7e87 100644..100755
--- a/idrop-web/grails-app/views/home/link.gsp
+++ b/idrop-web/grails-app/views/home/link.gsp
diff --git a/idrop-web/grails-app/views/home/noInfo.gsp b/idrop-web/grails-app/views/home/noInfo.gsp
new file mode 100755
index 0000000..2651776
--- /dev/null
+++ b/idrop-web/grails-app/views/home/noInfo.gsp
@@ -0,0 +1,3 @@
+<div>
+<h2><g:message code="message.no.files.to.display" /></h2>
+</div> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/home/quickViewList.gsp b/idrop-web/grails-app/views/home/quickViewList.gsp
new file mode 100644
index 0000000..57077df
--- /dev/null
+++ b/idrop-web/grails-app/views/home/quickViewList.gsp
@@ -0,0 +1,46 @@
+ <%@page import="org.irods.jargon.core.query.MetaDataAndDomainData" %>
+ <%@page import="org.irods.jargon.usertagging.domain.IRODSSharedFileOrCollection" %>
+<table class="table table-striped table-hover">
+ <thead>
+ <tr>
+ <th></th>
+ <th><g:message code="text.actions" /></th>
+ <th><g:message code="text.name" /></th>
+ <th><g:message code="text.description" /></th>
+ </tr>
+ </thead>
+ <tbody>
+ <g:each in="${listing}" var="entry">
+ <tr>
+ <g:if test="${entry.metadataDomain == MetaDataAndDomainData.MetadataDomain.COLLECTION}">
+ <td></td>
+ <td><span class="setPaddingLeftAndRight"><g:link controller="browse" action="index" params="[mode: 'path', absPath: entry.domainUniqueName]"><i class="icon-folder-open "></i></g:link></span>
+ <span class="setPaddingLeftAndRight"><i class="icon-upload " onclick="quickviewUpload('${entry.domainUniqueName}')"></i></span></td>
+ <td>${entry.domainUniqueName}</td> <td>${entry.description}</td>
+ </g:if>
+ <g:else>
+ <td></td>
+ <td><span class="setPaddingLeftAndRight"><g:link controller="browse" action="index" params="[mode: 'path', absPath: entry.domainUniqueName]"><i class="icon-folder-open "></i></g:link></span><span class="setPaddingLeftAndRight"><g:link url="${'file/download' + entry.domainUniqueName}"><i class="icon-download "></i></g:link></span></td>
+ <td>${entry.domainUniqueName}</td> <td>${entry.description}</td>
+ </g:else>
+ </tr>
+ </g:each>
+ </tbody>
+
+</table>
+<script>
+
+/**
+* Show the uplaod dialog using the hidden path in the info view
+*/
+function quickviewUpload(path) {
+ if (path == null) {
+ showErrorMessage(jQuery.i18n.prop('msg.path.missing'));
+ return false;
+ }
+
+ showUploadDialogUsingPath(path);
+
+
+}
+</script> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/home/shareQuickViewList.gsp b/idrop-web/grails-app/views/home/shareQuickViewList.gsp
new file mode 100644
index 0000000..7c96fb8
--- /dev/null
+++ b/idrop-web/grails-app/views/home/shareQuickViewList.gsp
@@ -0,0 +1,45 @@
+ <%@page import="org.irods.jargon.core.query.MetaDataAndDomainData" %>
+ <%@page import="org.irods.jargon.usertagging.domain.IRODSSharedFileOrCollection" %>
+<table class="table table-striped table-hover">
+ <thead>
+ <tr>
+ <th></th>
+ <th><g:message code="text.actions" /></th>
+ <th><g:message code="text.name" /></th>
+ </tr>
+ </thead>
+ <tbody>
+ <g:each in="${listing}" var="entry">
+ <tr>
+ <g:if test="${entry.metadataDomain == MetaDataAndDomainData.MetadataDomain.COLLECTION}">
+ <td></td>
+ <td><span class="setPaddingLeftAndRight"><g:link controller="browse" action="index" params="[mode: 'path', absPath: entry.domainUniqueName]"><i class="icon-folder-open "></i></g:link></span>
+ <span class="setPaddingLeftAndRight"><i class="icon-upload " onclick="quickviewUpload('${entry.domainUniqueName}')"></i></span></td>
+ <td>${entry.shareName}</td>
+ </g:if>
+ <g:else>
+ <td></td>
+ <td><span class="setPaddingLeftAndRight"><g:link controller="browse" action="index" params="[mode: 'path', absPath: entry.domainUniqueName]"><i class="icon-folder-open "></i></g:link></span><span class="setPaddingLeftAndRight"><g:link url="${'file/download' + entry.domainUniqueName}"><i class="icon-download "></i></g:link></span></td>
+ <td>${entry.shareName}</td>
+ </g:else>
+ </tr>
+ </g:each>
+ </tbody>
+
+</table>
+<script>
+
+/**
+* Show the uplaod dialog using the hidden path in the info view
+*/
+function quickviewUpload(path) {
+ if (path == null) {
+ showErrorMessage(jQuery.i18n.prop('msg.path.missing'));
+ return false;
+ }
+
+ showUploadDialogUsingPath(path);
+
+
+}
+</script> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/home/shareWithMeQuickViewList.gsp b/idrop-web/grails-app/views/home/shareWithMeQuickViewList.gsp
new file mode 100644
index 0000000..d6d82a6
--- /dev/null
+++ b/idrop-web/grails-app/views/home/shareWithMeQuickViewList.gsp
@@ -0,0 +1,48 @@
+ <%@page import="org.irods.jargon.core.query.MetaDataAndDomainData" %>
+ <%@page import="org.irods.jargon.usertagging.domain.IRODSSharedFileOrCollection" %>
+<table class="table table-striped table-hover">
+ <thead>
+ <tr>
+ <th></th>
+ <th>Action</th>
+ <th>Name</th>
+ <th>By User</th>
+ </tr>
+ </thead>
+ <tbody>
+ <g:each in="${listing}" var="entry">
+ <tr>
+ <g:if test="${entry.metadataDomain == MetaDataAndDomainData.MetadataDomain.COLLECTION}">
+ <td></td>
+ <td><span class="setPaddingLeftAndRight"><g:link controller="browse" action="index" params="[mode: 'path', absPath: entry.domainUniqueName]"><i class="icon-folder-open "></i></g:link></span>
+ <span class="setPaddingLeftAndRight"><i class="icon-upload " onclick="quickviewUpload('${entry.domainUniqueName}')"></i></span></td>
+ <td>${entry.shareName}</td>
+ <td>${entry.shareOwner}#${entry.shareOwnerZone}</td>
+ </g:if>
+ <g:else>
+ <td></td>
+ <td><span class="setPaddingLeftAndRight"><g:link controller="browse" action="index" params="[mode: 'path', absPath: entry.domainUniqueName]"><i class="icon-folder-open "></i></g:link></span><span class="setPaddingLeftAndRight"><g:link url="${'file/download' + entry.domainUniqueName}"><i class="icon-download "></i></g:link></span></td>
+ <td>${entry.shareName}</td>
+ <td>${entry.shareOwner}#${entry.shareOwnerZone}</td>
+ </g:else>
+ </tr>
+ </g:each>
+ </tbody>
+
+</table>
+<script>
+
+/**
+* Show the uplaod dialog using the hidden path in the info view
+*/
+function quickviewUpload(path) {
+ if (path == null) {
+ showErrorMessage(jQuery.i18n.prop('msg.path.missing'));
+ return false;
+ }
+
+ showUploadDialogUsingPath(path);
+
+
+}
+</script> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/idropLite/appletLoader.gsp b/idrop-web/grails-app/views/idropLite/appletLoader.gsp
index 297e853..297e853 100644..100755
--- a/idrop-web/grails-app/views/idropLite/appletLoader.gsp
+++ b/idrop-web/grails-app/views/idropLite/appletLoader.gsp
diff --git a/idrop-web/grails-app/views/layouts/basic.gsp b/idrop-web/grails-app/views/layouts/basic.gsp
index c5e105b..c5e105b 100644..100755
--- a/idrop-web/grails-app/views/layouts/basic.gsp
+++ b/idrop-web/grails-app/views/layouts/basic.gsp
diff --git a/idrop-web/grails-app/views/layouts/main.gsp b/idrop-web/grails-app/views/layouts/main.gsp
index 2cc23ca..2cc23ca 100644..100755
--- a/idrop-web/grails-app/views/layouts/main.gsp
+++ b/idrop-web/grails-app/views/layouts/main.gsp
diff --git a/idrop-web/grails-app/views/layouts/mainNoSidebar.gsp b/idrop-web/grails-app/views/layouts/mainNoSidebar.gsp
index f7bdced..f3bd869 100644..100755
--- a/idrop-web/grails-app/views/layouts/mainNoSidebar.gsp
+++ b/idrop-web/grails-app/views/layouts/mainNoSidebar.gsp
@@ -38,13 +38,17 @@
</script>
</head>
-<body style="height:100%;padding-top: 40px;">
-
+<body style="height:100%;padding-top: 60px;">
+ <div id="wrap">
<g:render template="/common/topbar"/>
<div id="defaultDialogDiv"><!-- default for general jquery dialogs --></div>
<div class="container-fluid">
<g:layoutBody />
- </div>
- <footer><g:render template="/common/footer" /></footer>
+
+ </div>
+ <div id="push"><!-- for sticky footers --></div>
+ </div>
+ <footer id="footer"><g:render template="/common/footer" /></footer>
+
</body>
</html> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/login/defaultStorageResource.gsp b/idrop-web/grails-app/views/login/defaultStorageResource.gsp
new file mode 100644
index 0000000..ba33ace
--- /dev/null
+++ b/idrop-web/grails-app/views/login/defaultStorageResource.gsp
@@ -0,0 +1,50 @@
+<head>
+<meta name="layout" content="mainNoSidebar" />
+<g:javascript library="mydrop/home" />
+</head>
+<div class="row-fluid">
+ <div class="span5 offset2">
+ <h4><g:message code="heading.set.resource"/></h4>
+ </div>
+</div>
+<div class="row-fluid">
+ <div class="span5 offset2">
+ <form class="form-horizontal">
+ <fieldset>
+ <div class="control-group">
+ <label class="control-label"><g:message code="text.user" /></label>
+ <div class="controls">${irodsAccount.userName}</div>
+ </div>
+ <div class="control-group">
+ <label class="control-label"><g:message code="text.zone" /></label>
+ <div class="controls">${irodsAccount.zone}</div>
+ </div>
+ <div class="control-group">
+ <label class="control-label"><g:message code="text.resource" /></label>
+ <div class="controls"><g:select name="defaultStorageResource" id="defaultStorageResource" from="${resources}" value="${irodsAccount.defaultStorageResource}"
+ onchange="topBarDefaultResourceChanged()"/></div>
+ </div>
+
+ </fieldset>
+ </form>
+ </div>
+</div>
+<script>
+
+
+function topBarDefaultResourceChanged() {
+ //showBlockingPanel();
+ try {
+ var resource = $("#defaultStorageResource").val();
+ if (resource == null) {
+ return false;
+ }
+ setDefaultStorageResource(resource);
+ //setMessage(jQuery.i18n.prop('msg_resource_changed'));
+ } finally {
+ //unblockPanel();
+ }
+
+}
+
+</script> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/login/login.gsp b/idrop-web/grails-app/views/login/login.gsp
index bacffe7..bacffe7 100644..100755
--- a/idrop-web/grails-app/views/login/login.gsp
+++ b/idrop-web/grails-app/views/login/login.gsp
diff --git a/idrop-web/grails-app/views/login/passwordChange.gsp b/idrop-web/grails-app/views/login/passwordChange.gsp
new file mode 100755
index 0000000..ac52199
--- /dev/null
+++ b/idrop-web/grails-app/views/login/passwordChange.gsp
@@ -0,0 +1,45 @@
+<head>
+<meta name="layout" content="mainNoSidebar" />
+<g:javascript library="mydrop/profile" />
+</head>
+<div class="row-fluid">
+ <div class="span5 offset2">
+ <h4><g:message code="text.change.password.header" /></h4>
+ </div>
+</div>
+<div class="row-fluid">
+ <div class="span5 offset2">
+ <g:form class="form-horizontal" controller="login" action="changePassword">
+
+ <g:if test="${flash.message}">
+ <div class="alert alert-success" >${flash.message}</div>
+ </g:if>
+
+
+ <g:hasErrors bean="${password}">
+ <div class="alert alert-error">
+ <ul>
+ <g:eachError var="err" bean="${password}">
+ <li><g:message error="${err}" /></li>
+ </g:eachError>
+ </ul>
+ </div>
+ </g:hasErrors>
+ <div id="container">
+ <div class="control-group">
+ <label class="control-label"><g:message code="text.password"/></label>
+ <div class="controls"><g:passwordField name="password" value="${password.password}" /></div>
+ </div>
+ <div class="control-group">
+ <label class="control-label"><g:message code="text.confirm.password"/></label>
+ <div class="controls"><g:passwordField name="confirmPassword" value="${password.confirmPassword}" /></div>
+ </div>
+ <div class="control-group">
+ <div></div>
+ <div><button id="changePassword" value="changePassword" type="submit" ><g:message code="text.update"/></button>
+ </div>
+ </div>
+ </div>
+ </g:form>
+ </div>
+</div> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/metadata/metadataDetails.gsp b/idrop-web/grails-app/views/metadata/metadataDetails.gsp
index e7e1aa2..e7e1aa2 100644..100755
--- a/idrop-web/grails-app/views/metadata/metadataDetails.gsp
+++ b/idrop-web/grails-app/views/metadata/metadataDetails.gsp
diff --git a/idrop-web/grails-app/views/metadata/metadataDialog.gsp b/idrop-web/grails-app/views/metadata/metadataDialog.gsp
index 86fa644..86fa644 100644..100755
--- a/idrop-web/grails-app/views/metadata/metadataDialog.gsp
+++ b/idrop-web/grails-app/views/metadata/metadataDialog.gsp
diff --git a/idrop-web/grails-app/views/metadata/metadataTable.gsp b/idrop-web/grails-app/views/metadata/metadataTable.gsp
index 47df3c5..47df3c5 100644..100755
--- a/idrop-web/grails-app/views/metadata/metadataTable.gsp
+++ b/idrop-web/grails-app/views/metadata/metadataTable.gsp
diff --git a/idrop-web/grails-app/views/profile/_profileToolbar.gsp b/idrop-web/grails-app/views/profile/_profileToolbar.gsp
index 154ae95..154ae95 100644..100755
--- a/idrop-web/grails-app/views/profile/_profileToolbar.gsp
+++ b/idrop-web/grails-app/views/profile/_profileToolbar.gsp
diff --git a/idrop-web/grails-app/views/profile/changePasswordDialog.gsp b/idrop-web/grails-app/views/profile/changePasswordDialog.gsp
deleted file mode 100644
index 642e108..0000000
--- a/idrop-web/grails-app/views/profile/changePasswordDialog.gsp
+++ /dev/null
@@ -1,37 +0,0 @@
-<div id="changePasswordDialog" class="roundedContainer">
- <h1><g:message code="text.change.password.header" /></h1>
- <g:form name="changePasswordForm" id="changePasswordForm">
-
- <g:if test="${flash.error}">
- <script>
- $(function() { setErrorMessage("${flash.error}"); });
- </script>
- </g:if>
-
- <g:hasErrors bean="${password}">
- <div class="errors">
- <ul>
- <g:eachError var="err" bean="${password}">
- <li><g:message error="${err}" /></li>
- </g:eachError>
- </ul>
- </div>
- </g:hasErrors>
- <div id="container" style="height:100%;width:100%;">
- <div>
- <div style="width:15%;"><label><g:message code="text.password"/></label></div>
- <div><g:passwordField name="password" value="${password.password}" /></div>
- </div>
- <div>
- <div style="width:15%;"><label><g:message code="text.confirm.password"/></label></div>
- <div><g:passwordField name="confirmPassword" value="${password.confirmPassword}" /></div>
- </div>
- <div>
- <div></div>
- <div><button type="button" id="changePassword" value="changePassword" onclick="submitChangePassword()"><g:message code="text.update"/></button>
- <button type="button" id="cancelChangePassword" value="cancelChangePassword" onclick="closePasswordDialog()"><g:message code="text.cancel"/></button>
- </div>
- </div>
- </div>
- </g:form>
-</div>
diff --git a/idrop-web/grails-app/views/profile/index.gsp b/idrop-web/grails-app/views/profile/index.gsp
index 1863199..7892991 100644..100755
--- a/idrop-web/grails-app/views/profile/index.gsp
+++ b/idrop-web/grails-app/views/profile/index.gsp
@@ -1,28 +1,185 @@
<head>
<meta name="layout" content="mainNoSidebar" />
-<g:javascript library="mydrop/home" />
<g:javascript library="mydrop/profile" />
</head>
-<div id="profileTabContent" >
- <h1><g:message code="text.profile.header"/></h1>
- <div id="profileToolbar" style="display:block;">
- <g:render template="/profile/profileToolbar" />
- </div> <!-- profileToolbar -->
- <div id="profileDialogArea"><!-- div for optional profile dialogs -->
+
+<g:if test="${flash.error}">
+ <script>
+ $(function() { setMessage("${flash.error}"); });
+ </script>
+</g:if>
+
+<g:if test="${flash.message}">
+ <script>
+ $(function() { setMessage("${flash.message}");
+ });
+ </script>
+</g:if>
+
+<div id="profileFormDiv">
+
+
+ <g:hasErrors bean="${userProfile}">
+ <div class="alert">
+ <ul>
+ <g:eachError var="err" bean="${userProfile}">
+ <li><g:message error="${err}" /></li>
+ </g:eachError>
+ </ul>
</div>
- <div id="profileDataArea" style="clear:both;">
- <!-- area for profile data -->
+ </g:hasErrors>
+
+
+
+ <div class="row-fluid">
+ <div class="span12">
+ <g:form name="userProfileForm" class="form-horizontal" controller="profile"
+ action="updateProfile">
+ <div class="control-group">
+ <label class="control-label"><g:message code="text.user" /></label>
+ <div class="controls">
+ ${userProfile.userName}
+ <g:hiddenField name="userName" value="${userProfile.userName}"/>
+ </div>
+ </div>
+ <div class="control-group">
+ <label class="control-label"><g:message
+ code="text.nickname" /></label>
+ <div class="controls">
+ <g:textField id="nickName" name="nickName"
+ value="${userProfile.nickName}" />
+ </div>
+ </div>
+
+ <div class="control-group">
+ <label class="control-label"><g:message code="text.title" /></label>
+ <div class="controls">
+ <g:textField id="title" name="title" value="${userProfile.title}" />
+ </div>
+ </div>
+
+
+ <div class="control-group">
+ <label class="control-label"><g:message code="text.url" /></label>
+ <div class="controls">
+ <g:textField id="labeledURL" name="labeledURL" value="${userProfile.labeledURL}" />
+ </div>
+ </div>
+
+
+ <div class="control-group">
+ <label class="control-label"><g:message
+ code="text.description" /></label>
+ <div class="controls">
+ <g:textField id="description" name="description"
+ value="${userProfile.description}" />
+ </div>
+ </div>
+
+ <div class="control-group">
+ <label class="control-label"><g:message
+ code="text.first.name" /></label>
+ <div class="controls">
+ <g:textField id="givenName" name="givenName"
+ value="${userProfile.givenName}" />
+ </div>
+ </div>
+
+ <div class="control-group">
+ <label class="control-label"><g:message
+ code="text.last.name" /></label>
+ <div class="controls">
+ <g:textField id="lastName" name="lastName"
+ value="${userProfile.lastName}" />
+ </div>
+ </div>
+
+ <div class="control-group">
+ <label class="control-label"><g:message code="text.address" /></label>
+ <div class="controls">
+ <g:textField id="postalAddress" name="postalAddress"
+ value="${userProfile.postalAddress}" />
+ </div>
+ </div>
+
+ <div class="control-group">
+ <label class="control-label"><g:message
+ code="text.post.office.box" /></label>
+ <div class="controls">
+ <g:textField id="postOfficeBox" name="postOfficeBox"
+ value="${userProfile.postOfficeBox}" />
+ </div>
+ </div>
+
+ <div class="control-group">
+ <label class="control-label"><g:message code="text.city" /></label>
+ <div class="controls">
+ <g:textField id="city" name="city" value="${userProfile.city}" />
+ </div>
+ </div>
+
+
+ <div class="control-group">
+ <label class="control-label"><g:message code="text.state" /></label>
+ <div class="controls">
+ <g:textField id="state" name="state" value="${userProfile.state}" />
+ </div>
+ </div>
+
+ <div class="control-group">
+ <label class="control-label"><g:message
+ code="text.postal.code" /></label>
+ <div class="controls">
+ <g:textField id="postalCode" name="postalCode"
+ value="${userProfile.postalCode}" />
+ </div>
+ </div>
+
+ <div class="control-group">
+ <label class="control-label"><g:message
+ code="text.telephone.number" /></label>
+ <div class="controls">
+ <g:textField id="telephoneNumber" name="telephoneNumber"
+ value="${userProfile.telephoneNumber}" />
+ </div>
+ </div>
+
+
+
+ <div class="control-group">
+ <label class="control-label"><g:message code="text.email" /></label>
+ <div class="controls">
+ <g:textField id="email" name="email" value="${userProfile.email}" />
+ </div>
+ </div>
+
+
+
+ <div class="control-group">
+ <div class="controls">
+ <button type="button" id="updateProfile" value="updateProfile"
+ onclick="updateUserProfile()">
+ <g:message code="text.update" />
+ </button>
+ <button type="button" id="reloadProfile" value="reloadProfile"
+ onclick="loadProfileData()">
+ <g:message code="text.cancel" />
+ </button>
+ </div>
+ </div>
</div>
+ </g:form>
</div>
</div>
+</dov>
<script>
+$(document).ready(function() {
-$(function() {
- loadProfileData();
- $("#topbarPreferences").addClass("active");
-
-
-});
-
+ $.ajaxSetup({
+ cache : false
+ });
+ $("#topbarPreferences").addClass("active");
+ quickViewShowStarredFiles();
+ });
</script> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/profile/noProfileData.gsp b/idrop-web/grails-app/views/profile/noProfileData.gsp
index c525713..c525713 100644..100755
--- a/idrop-web/grails-app/views/profile/noProfileData.gsp
+++ b/idrop-web/grails-app/views/profile/noProfileData.gsp
diff --git a/idrop-web/grails-app/views/profile/profileData.gsp b/idrop-web/grails-app/views/profile/profileData.gsp
deleted file mode 100644
index 0c0443e..0000000
--- a/idrop-web/grails-app/views/profile/profileData.gsp
+++ /dev/null
@@ -1,38 +0,0 @@
-<div class="row-fluid">
- <div class="span12">
- <form class="form-horizontal">
- <div class="control-group">
- <label class="control-label"><g:message code="text.user"/></label>
- <div class="controls">
- ${userProfile.userName}
- </div>
- </div>
- <div class="control-group">
- <label class="control-label"><g:message code="text.nickname"/></label>
- <div class="controls"><g:textField id="nickName" name="nickName" value="${userProfile.userProfilePublicFields.nickName}" /></div>
- </div>
- <div class="control-group">
- <label class="control-label"><g:message code="text.personal.blurb"/></label>
- <div class="controls">
- <g:textArea id="description" name="description" rows="3" cols="40" value="${userProfile.userProfilePublicFields.description}" />
- </div>
- </div>
- <div class="control-group">
- <label class="control-label"><g:message code="text.email"/></label>
- <div class="controls">
- <g:textField id="email" name="email"
- value="${userProfile.userProfileProtectedFields.mail}" />
- </div>
- </div>
- <div class="control-group">
- <div class="controls">
- <button type="button" id="updateProfile" value="updateProfile" onclick="updateUserProfile()"><g:message code="text.update"/></button>
- <button type="button" id="reloadProfile" value="reloadProfile" onclick="loadProfileData()"><g:message code="text.cancel"/></button>
- </div>
- </div>
-
- </div>
- </form>
- </div>
-</div>
- <!-- updateProfile() --> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/search/searchResult.gsp b/idrop-web/grails-app/views/search/searchResult.gsp
index a5de405..7c69443 100644..100755
--- a/idrop-web/grails-app/views/search/searchResult.gsp
+++ b/idrop-web/grails-app/views/search/searchResult.gsp
@@ -1,25 +1,55 @@
-<table cellspacing="0" cellpadding="0" border="0" id="searchResultTable"
- class="display" style="width: 90%;height:90%;overflow:auto;">
- <thead>
- <tr>
- <th></th>
- <th>Name</th>
- <th>Absolute path <i>Click to see in tree</i></th>
- <th>Type</th>
- <th>Modified date</th>
- <th>Length</th>
- </tr>
+<table class="table table-striped table-hover" cellspacing="0"
+ cellpadding="0" border="0">
+ <tr>
+ <th></th>
+ <th>
+
+ <div class="btn-group">
+ <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">Action<span
+ class="caret"></span></a>
+ <ul class="dropdown-menu">
+ <li id="menuAddToCartDetails"><a href="#addAllToCartDetails"
+ onclick="addSelectedToCart()"><g:message
+ code="text.add.all.to.cart" /></a></li>
+ <li id="menuDeleteDetails"><a href="#deleteAllDetails"
+ onclick="deleteSelected()"><g:message code="text.delete.all" /></a></li>
+ <!-- dropdown menu links -->
+ </ul>
+ </div>
+
+ </th>
+ <th><g:message code="text.name" /></th>
+ <th><g:message code="text.type" /></th>
+ <th><g:message code="text.modified" /></th>
+ <th><g:message code="text.length" /></th>
+ </tr>
</thead>
<tbody>
<g:each in="${results}" var="entry">
+
<tr id="${entry.formattedAbsolutePath}">
- <td><div class="ui-icon-circle-plus search-detail-icon ui-icon " /></td>
- <td><g:if test="${entry.objectType.toString() == 'COLLECTION'}">${entry.nodeLabelDisplayValue}</g:if><g:else><g:link url="${'file/download' + entry.formattedAbsolutePath}">${entry.nodeLabelDisplayValue}</g:link>
- </g:else></td>
- <td><a href="#" id="${entry.formattedAbsolutePath}" onclick="clickOnPathInSearchResult(this.id)">${entry.formattedAbsolutePath}</a></td>
- <td>${entry.objectType}</td>
- <td>${entry.modifiedAt}</td>
- <td>${entry.dataSize}</td>
+
+ <td><span
+ class="ui-icon-circle-plus search-detail-icon ui-icon"></span></td>
+ <td><g:checkBox name="selectDetail"
+ value="${entry.formattedAbsolutePath}" checked="false" /> <span
+ class="setPaddingLeftAndRight"><g:link target="_blank"
+ controller="browse" action="index"
+ params="[mode: 'path', absPath: entry.formattedAbsolutePath]">
+ <i class="icon-folder-open "></i>
+ </g:link></span></td>
+ <td>
+ ${entry.nodeLabelDisplayValue}
+ </td>
+ <td>
+ ${entry.objectType}
+ </td>
+ <td>
+ ${entry.modifiedAt}
+ </td>
+ <td>
+ ${entry.displayDataSize}
+ </td>
</tr>
</g:each>
@@ -38,20 +68,12 @@
</table>
<script type="text/javascript">
-function clickOnPathInSearchResult(data) {
- if (data == null) {
- throw new Exception("no absolute path provided");
- }
- // show main browse tab
- $(tabs).tabs('select', 0); // switch to home tab
- splitPathAndPerformOperationAtGivenTreePath(data, null,
- null, function(path, dataTree, currentNode){
-
- $.jstree._reference(dataTree).open_node(currentNode);
- $.jstree._reference(dataTree).select_node(currentNode, true);
- // updateBrowseDetailsForPathBasedOnCurrentModel(data);
+ function clickOnPathInSearchResult(data) {
- });
-}
+ }
+ function infoHere(path) {
+ setDefaultView("info");
+ selectTreePathFromIrodsPath(path);
+ }
</script> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/sharing/_sharingPanel.gsp b/idrop-web/grails-app/views/sharing/_sharingPanel.gsp
new file mode 100644
index 0000000..6a3a4e5
--- /dev/null
+++ b/idrop-web/grails-app/views/sharing/_sharingPanel.gsp
@@ -0,0 +1,41 @@
+<div id="aclSharingPanel">
+ <div id="aclSharingPanelTopSection">
+ <div id="sharingToolbar" class="well btn-toolbar">
+ <g:if
+ test="${grailsApplication.config.idrop.config.use.sharing==true && irodsSharedFileOrCollection != null}">
+ <div>
+
+ <h4>This file is marked as a share, and appears with the name:
+ <strong>${irodsSharedFileOrCollection.shareName}</strong> for users with access rights</h4>
+
+ </div>
+ </g:if>
+ <div id="sharingMenu">
+
+ <div class="btn-group">
+ <g:if
+ test="${grailsApplication.config.idrop.config.use.sharing==true && irodsSharedFileOrCollection != null}">
+ <button onclick="editShareAtPath()">
+ <g:message code="text.edit.share" />
+ </button>
+ <button onclick="removeShareAtPath()">
+ <g:message code="text.remove.share" />
+ </button>
+ </g:if>
+ <g:if
+ test="${grailsApplication.config.idrop.config.use.sharing==true && irodsSharedFileOrCollection == null}">
+ <h4>This file is not currently marked as a share. Marking as a share will allow users with access rights to see this collection as shared with them</h4>
+
+ <button onclick="addShareAtPath()">
+ <g:message code="text.add.share" />
+ </button>
+ </g:if>
+ </div>
+
+ </div>
+ </div>
+
+
+
+ </div>
+</div>
diff --git a/idrop-web/grails-app/views/sharing/aclDetails.gsp b/idrop-web/grails-app/views/sharing/aclDetails.gsp
index 520663d..1c082eb 100644..100755
--- a/idrop-web/grails-app/views/sharing/aclDetails.gsp
+++ b/idrop-web/grails-app/views/sharing/aclDetails.gsp
@@ -6,6 +6,9 @@
<div class="alert alert-info">
<g:message code="heading.permissions" />
</div>
+ <div id="sharingPanelContainingDiv">
+ <g:render template="/sharing/sharingPanel" />
+ </div>
<div id="detailsTopSection" >
<div id="detailsToolbar" class="well btn-toolbar">
<div id="detailsMenu">
@@ -26,6 +29,7 @@
</div>
</div>
</div>
+
<g:hiddenField name='aclDetailsAbsPath' id='aclDetailsAbsPath' value='${absPath}'/>
<div id="aclTableDiv"><!-- acl user list --></div>
</div>
@@ -42,70 +46,6 @@
reloadAclTable(path);
});
- /*
- * Cause a dialog to appear that has a link for a public path for the current path
- */
- function makePublicLinkAtPath() {
- $("#aclDialogArea").html();
- var path = selectedPath;
- if (selectedPath == null) {
- return false;
- }
-
- // show the public link dialog
- var url = "/browse/preparePublicLinkDialog";
- var params = {
- absPath : path
- }
-
- lcSendValueWithParamsAndPlugHtmlInDiv(url, params, "", function(data) {
- fillInPublicLinkDialog(data);
- });
-
- }
-
-
- /**
- * Close the public link dialog
- */
- function closePublicLinkDialog() {
-
- $("#aclDialogArea").hide("slow");
- $("#aclDialogArea").html();
- var path = $("#publicLinkDialogAbsPath").val();
- reloadAclTable(path);
- $("#aclDetailsArea").show("slow");
- }
-
- /**
- * Grant public (anonymous access) via the public link dialog. Submit dialog and present the response
- */
- function grantPublicLink() {
- var path = $("#publicLinkDialogAbsPath").val();
- showBlockingPanel();
- if (path == null) {
- setMessage(jQuery.i18n.prop('msg.path.missing'));
- unblockPanel();
- }
-
- var params = {
- absPath : path
- }
-
- lcSendValueViaPostAndCallbackHtmlAfterErrorCheck("/browse/updatePublicLinkDialog", params, null, "#aclDialogArea", null, null);
- unblockPanel();
-
- }
-
-
- /*
- *Given the contents of the 'create public link' dialog,
- */
- function fillInPublicLinkDialog(data) {
- $("#aclDetailsArea").hide("slow");
- $("#aclDialogArea").html(data);
- $("#aclDialogArea").show("slow");
- }
</script> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/sharing/aclDialog.gsp b/idrop-web/grails-app/views/sharing/aclDialog.gsp
index c4a9e4f..3e19529 100644..100755
--- a/idrop-web/grails-app/views/sharing/aclDialog.gsp
+++ b/idrop-web/grails-app/views/sharing/aclDialog.gsp
@@ -1,7 +1,7 @@
<div class="alert alert-info">
<g:message code="heading.enter.user.or.search" />
</div>
-<div id="aclDialogDiv" class="alert alert-info">
+<div id="aclDialogDiv">
diff --git a/idrop-web/grails-app/views/sharing/aclTable.gsp b/idrop-web/grails-app/views/sharing/aclTable.gsp
index dd2d99b..dd2d99b 100644..100755
--- a/idrop-web/grails-app/views/sharing/aclTable.gsp
+++ b/idrop-web/grails-app/views/sharing/aclTable.gsp
diff --git a/idrop-web/grails-app/views/sharing/addShareDialog.gsp b/idrop-web/grails-app/views/sharing/addShareDialog.gsp
new file mode 100755
index 0000000..91f5396
--- /dev/null
+++ b/idrop-web/grails-app/views/sharing/addShareDialog.gsp
@@ -0,0 +1,40 @@
+<div class="alert alert-info">
+ <g:message code="heading.add.share" />
+</div>
+<div id="addShareDialogDiv">
+
+ <form class="form-horizontal" id="addShareForm" name="addShareForm"
+ action="">
+ <g:hiddenField name="formAction" id="formAction" value="${formAction}"/>
+ <g:if test="${flash.error}">
+ <script type="text/javascript">
+ $(function() { setErrorMessage("${flash.error}"); });
+ </script>
+ </g:if>
+
+ <g:if test="${flash.message}">
+ <script type="text/javascript">
+ $(function() { setMessage("${flash.message}");});
+ </script>
+ </g:if>
+
+ <div class="control-group">
+ <label class="control-label" for="shareName"><g:message
+ code="text.share.name" /></label>
+ <div class="controls">
+ <input type="text" id="shareName" value="${shareName}">
+ </div>
+ </div>
+ <div class="control-group">
+ <div class="controls">
+ <button type="button" class="btn" id="btnUpdateNamedShare" onclick="updateNamedShare()">
+ <g:message code="text.update" />
+ </button>
+ <button type="button" class="btn" onclick="closeNamedShareDialog()">
+ <g:message code="text.cancel" />
+ </button>
+ </div>
+ </div>
+ </form>
+
+</div> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/sharing/sharingPanelWrapper.gsp b/idrop-web/grails-app/views/sharing/sharingPanelWrapper.gsp
new file mode 100644
index 0000000..ed3267e
--- /dev/null
+++ b/idrop-web/grails-app/views/sharing/sharingPanelWrapper.gsp
@@ -0,0 +1,3 @@
+<div>
+<g:render template="/sharing/sharingPanel" />
+</div> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/sharing/userPanel.gsp b/idrop-web/grails-app/views/sharing/userPanel.gsp
index c5e714a..c5e714a 100644..100755
--- a/idrop-web/grails-app/views/sharing/userPanel.gsp
+++ b/idrop-web/grails-app/views/sharing/userPanel.gsp
diff --git a/idrop-web/grails-app/views/shoppingCart/cartDetails.gsp b/idrop-web/grails-app/views/shoppingCart/cartDetails.gsp
index a45a4bb..a45a4bb 100644..100755
--- a/idrop-web/grails-app/views/shoppingCart/cartDetails.gsp
+++ b/idrop-web/grails-app/views/shoppingCart/cartDetails.gsp
diff --git a/idrop-web/grails-app/views/shoppingCart/index.gsp b/idrop-web/grails-app/views/shoppingCart/index.gsp
index 642fdbc..642fdbc 100644..100755
--- a/idrop-web/grails-app/views/shoppingCart/index.gsp
+++ b/idrop-web/grails-app/views/shoppingCart/index.gsp
diff --git a/idrop-web/grails-app/views/tags/index.gsp b/idrop-web/grails-app/views/tags/index.gsp
new file mode 100755
index 0000000..ec43205
--- /dev/null
+++ b/idrop-web/grails-app/views/tags/index.gsp
@@ -0,0 +1,64 @@
+<head>
+<meta name="layout" content="mainNoSidebar" />
+<g:javascript library="mydrop/tag" />
+</head>
+<button type="button" id="refreshTags" name="refreshTags"
+ onclick="refreshTagCloudButtonClicked()">
+ <g:message code="text.refresh" />
+</button>
+
+<ul class="nav nav-tabs" id="searchTabs">
+ <li><a href="#tagCloudTab">Tags</a></li>
+ <li><a href="#resultsTab">Search Results</a></li>
+</ul>
+
+<div class="tab-content">
+ <div class="tab-pane active" id="tagCloudTab">
+ <div style="padding: 10px;overflow:auto;">
+ <div id="tagCloudDiv" style="height: 700px;width:auto;">
+ <!-- tag cloud div is ajax loaded -->
+ </div>
+ </div>
+ </div>
+ <div class="tab-pane" id="resultsTab">
+ <div id="resultsTabInner">
+ Search Results here
+ </div>
+
+ </div>
+
+</div>
+
+<script>
+ $(document).ready(function() {
+
+ $.ajaxSetup({
+ cache : false
+ });
+ $("#topbarSearch").addClass("active");
+
+ $('#searchTabs a').click(function (e) {
+
+ e.preventDefault();
+ $(this).tab('show');
+ var state = {};
+ var tabId = this.hash
+ state["tab"] = tabId;
+ $.bbq.pushState(state);
+ });
+
+ $(window).bind( 'hashchange', function(e) {
+ processTagSearchStateChange( $.bbq.getState());
+ });
+
+ refreshTagCloud();
+
+ $(window).trigger( 'hashchange' );
+
+ });
+
+ function refreshTagCloudButtonClicked() {
+
+ refreshTagCloud();
+ }
+</script> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/tags/tagCloud.gsp b/idrop-web/grails-app/views/tags/tagCloud.gsp
index a6f82f0..a6f82f0 100644..100755
--- a/idrop-web/grails-app/views/tags/tagCloud.gsp
+++ b/idrop-web/grails-app/views/tags/tagCloud.gsp
diff --git a/idrop-web/grails-app/views/ticket/ticketDetails.gsp b/idrop-web/grails-app/views/ticket/ticketDetails.gsp
index 2d3384c..2d3384c 100644..100755
--- a/idrop-web/grails-app/views/ticket/ticketDetails.gsp
+++ b/idrop-web/grails-app/views/ticket/ticketDetails.gsp
diff --git a/idrop-web/grails-app/views/ticket/ticketPulldown.gsp b/idrop-web/grails-app/views/ticket/ticketPulldown.gsp
index f931b2a..f931b2a 100644..100755
--- a/idrop-web/grails-app/views/ticket/ticketPulldown.gsp
+++ b/idrop-web/grails-app/views/ticket/ticketPulldown.gsp
diff --git a/idrop-web/grails-app/views/ticket/ticketTable.gsp b/idrop-web/grails-app/views/ticket/ticketTable.gsp
index 0d0f34c..0d0f34c 100644..100755
--- a/idrop-web/grails-app/views/ticket/ticketTable.gsp
+++ b/idrop-web/grails-app/views/ticket/ticketTable.gsp
diff --git a/idrop-web/grails-app/views/ticketAccess/ticketAccessCollection.gsp b/idrop-web/grails-app/views/ticketAccess/ticketAccessCollection.gsp
index dd63788..dd63788 100644..100755
--- a/idrop-web/grails-app/views/ticketAccess/ticketAccessCollection.gsp
+++ b/idrop-web/grails-app/views/ticketAccess/ticketAccessCollection.gsp
diff --git a/idrop-web/grails-app/views/ticketAccess/ticketAccessDataObject.gsp b/idrop-web/grails-app/views/ticketAccess/ticketAccessDataObject.gsp
index 2a296cb..eeb42ce 100644..100755
--- a/idrop-web/grails-app/views/ticketAccess/ticketAccessDataObject.gsp
+++ b/idrop-web/grails-app/views/ticketAccess/ticketAccessDataObject.gsp
@@ -5,7 +5,7 @@
style="height: 820px;">
<div class="roundedContainer">
<h1>Landing page for Data Object</h1>
- <h2>This ticket allows you to download a file from iRODS that has been shared with you. Click the button below to download the file to you local file system</h2>
+ <h2>This ticket allows you to download a file from iRODS that has been shared with you. Click the button below to download the file to your local file system</h2>
</div>
<div id="container" style="height:auto;width:100%;">
<g:hiddenField name='ticketString' id='ticketString' value='${ticketString}'/>
diff --git a/idrop-web/grails-app/views/ticketAccess/uploadToTicketCollection.gsp b/idrop-web/grails-app/views/ticketAccess/uploadToTicketCollection.gsp
index 10d6576..10d6576 100644..100755
--- a/idrop-web/grails-app/views/ticketAccess/uploadToTicketCollection.gsp
+++ b/idrop-web/grails-app/views/ticketAccess/uploadToTicketCollection.gsp
diff --git a/idrop-web/grails-app/views/user/index.gsp b/idrop-web/grails-app/views/user/index.gsp
index 5517ac8..5517ac8 100644..100755
--- a/idrop-web/grails-app/views/user/index.gsp
+++ b/idrop-web/grails-app/views/user/index.gsp
diff --git a/idrop-web/grails-app/views/user/userInfoDialog.gsp b/idrop-web/grails-app/views/user/userInfoDialog.gsp
index 222d95d..222d95d 100644..100755
--- a/idrop-web/grails-app/views/user/userInfoDialog.gsp
+++ b/idrop-web/grails-app/views/user/userInfoDialog.gsp
diff --git a/idrop-web/grails-app/views/user/userList.gsp b/idrop-web/grails-app/views/user/userList.gsp
index cf10db6..9af90a9 100644..100755
--- a/idrop-web/grails-app/views/user/userList.gsp
+++ b/idrop-web/grails-app/views/user/userList.gsp
@@ -1,5 +1,5 @@
- <table cellspacing="0" cellpadding="0" border="0" id="userListTable">
+ <table class="table table-striped table-hover" cellspacing="0" cellpadding="0" border="0" id="userListTable">
<thead>
<tr>
<th ></th>
@@ -46,6 +46,6 @@
userListTable.fnAdjustColumnSizing();
});
- */
-
+
+*/
</script> \ No newline at end of file