updates for page management - page deletion as well as changing menu management to menu ordering

This commit is contained in:
hjkhjk54 2012-06-25 00:19:33 +00:00
parent 54941a201b
commit e3f9caced1
11 changed files with 81 additions and 18 deletions

View file

@ -130,7 +130,7 @@ public class DeletePageController extends VitroHttpServlet {
(RDFNode) null); (RDFNode) null);
while(dataGetterIt.hasNext()) { while(dataGetterIt.hasNext()) {
Statement dataGetterStmt = dataGetterIt.nextStatement(); Statement dataGetterStmt = dataGetterIt.nextStatement();
Resource dataGetterResource = dataGetterStmt.getSubject(); Resource dataGetterResource = dataGetterStmt.getResource();
dataGettersModel.add(displayModel.listStatements(dataGetterResource, null, (RDFNode) null)); dataGettersModel.add(displayModel.listStatements(dataGetterResource, null, (RDFNode) null));
} }
return dataGettersModel; return dataGettersModel;
@ -160,11 +160,7 @@ public class DeletePageController extends VitroHttpServlet {
//This should be in write mode //This should be in write mode
//TODO: find better way of doing this //TODO: find better way of doing this
private OntModel getDisplayModel(VitroRequest vreq) { private OntModel getDisplayModel(VitroRequest vreq) {
if(vreq.getAttribute(vreq.SPECIAL_WRITE_MODEL) != null) { return vreq.getDisplayModel();
return vreq.getWriteModel();
} else {
return (OntModel) getServletContext().getAttribute("http://vitro.mannlib.cornell.edu/default/vitro-kb-displayMetadata");
}
} }
Log log = LogFactory.getLog(MenuManagementEdit.class); Log log = LogFactory.getLog(MenuManagementEdit.class);

View file

@ -366,9 +366,43 @@ public class ObjectPropertyStatementDaoJena extends JenaBaseDao implements Objec
// } // }
try { try {
//If RDFService is null, will do what code used to do before, otherwise employ rdfservice
if(rdfService == null) {
log.debug("RDF Service null, Using CONSTRUCT query string for object property " +
propertyUri + ": " + queryString);
Query query = null;
try {
query = QueryFactory.create(queryString, Syntax.syntaxARQ);
} catch(Throwable th){
log.error("Could not create CONSTRUCT SPARQL query for query " +
"string. " + th.getMessage());
log.error(queryString);
return constructedModel;
}
DatasetWrapper w = dwf.getDatasetWrapper();
Dataset dataset = w.getDataset();
dataset.getLock().enterCriticalSection(Lock.READ);
QueryExecution qe = null;
try {
qe = QueryExecutionFactory.create(
query, dataset);
qe.execConstruct(constructedModel);
} catch (Exception e) {
log.error("Error getting constructed model for subject " + subjectUri + " and property " + propertyUri);
} finally {
if (qe != null) {
qe.close();
}
dataset.getLock().leaveCriticalSection();
w.close();
}
} else {
constructedModel.read( constructedModel.read(
rdfService.sparqlConstructQuery( rdfService.sparqlConstructQuery(
queryString, RDFService.ModelSerializationFormat.N3), null, "N3"); queryString, RDFService.ModelSerializationFormat.N3), null, "N3");
}
} catch (Exception e) { } catch (Exception e) {
log.error("Error getting constructed model for subject " + subjectUri + " and property " + propertyUri); log.error("Error getting constructed model for subject " + subjectUri + " and property " + propertyUri);
} }

View file

@ -508,7 +508,12 @@ private String getExistingCustomTemplateQuery() {
data.put("title", "Add Menu Item"); data.put("title", "Add Menu Item");
data.put("menuAction", "Add"); data.put("menuAction", "Add");
data.put("selectedTemplateType", "default"); data.put("selectedTemplateType", "default");
//defaults to regular class group page //Check for parameter specifying that this is a new menu page, in which case
//menu item should be selected
String menuItemParam = vreq.getParameter("addMenuItem");
if(menuItemParam != null) {
data.put("addMenuItem", menuItemParam);
}
} }
//N3 strings //N3 strings

View file

@ -34,6 +34,12 @@ var pageManagementUtils = {
} }
return false; return false;
}, },
isAddMenuItem:function() {
if(pageManagementUtils.addMenuItem != null && pageManagementUtils.addMenuItem == "true") {
return true;
}
return false;
},
initExistingContent:function() { initExistingContent:function() {
this.generateExistingContentSections(); this.generateExistingContentSections();
//display more content button - will need to review how to hit save etc. //display more content button - will need to review how to hit save etc.
@ -135,7 +141,7 @@ var pageManagementUtils = {
// tlw72 this.moreContentButton.hide(); // tlw72 this.moreContentButton.hide();
//left side components //left side components
//These depend on whether or not this is an existing item or not //These depend on whether or not this is an existing item or not
if(this.isAdd()) { if(this.isAdd() && !this.isAddMenuItem()) {
this.defaultTemplateRadio.attr('checked',true); this.defaultTemplateRadio.attr('checked',true);
this.isMenuCheckbox.attr('checked',false); this.isMenuCheckbox.attr('checked',false);
this.menuSection.hide(); this.menuSection.hide();
@ -345,6 +351,8 @@ var pageManagementUtils = {
if($.isFunction(dataGetterProcessorObj.bindEventHandlers)) { if($.isFunction(dataGetterProcessorObj.bindEventHandlers)) {
dataGetterProcessorObj.bindEventHandlers($newContentObj); dataGetterProcessorObj.bindEventHandlers($newContentObj);
} }
//Bind done event as the done button is within the cloned content
pageManagementUtils.bindClonedContentDoneEvent($newContentObj);
}, },
createClonedContentContainer:function($newContentObj, counter, contentTypeLabel, varOrClass) { createClonedContentContainer:function($newContentObj, counter, contentTypeLabel, varOrClass) {
//Create the container for the new content //Create the container for the new content
@ -367,6 +375,17 @@ var pageManagementUtils = {
//place new content object //place new content object
$newContentObj.prependTo($innerDiv); $newContentObj.prependTo($innerDiv);
}, },
bindClonedContentDoneEvent:function($newContentObj) {
//Done button should just collapse the cloned content
$newContentObj.find("input[name='doneWithContent']").click(function() {
var thisInnerDiv = $(this).closest("div.pageContentWrapper");
thisInnerDiv.slideUp(222);
var thisClickableSpan = $(this).closest("span.pageContentExpand");
var thisArrowDiv = thisClickableSpan.find('div.arrow');
thisArrowDiv.removeClass("collapseArrow");
thisArrowDiv.addClass("expandArrow");
});
},
bindClonedContentContainerEvents:function($newDivContainer, counter) { bindClonedContentContainerEvents:function($newDivContainer, counter) {
var $clickableSpan = $newDivContainer.children('span#clickable' + counter); var $clickableSpan = $newDivContainer.children('span#clickable' + counter);
var $innerDiv = $newDivContainer.children('div#innerContainer' + counter); var $innerDiv = $newDivContainer.children('div#innerContainer' + counter);
@ -389,10 +408,11 @@ var pageManagementUtils = {
} }
window.setTimeout('pageManagementUtils.adjustSaveButtonHeight()', 223); window.setTimeout('pageManagementUtils.adjustSaveButtonHeight()', 223);
}); });
//remove button //remove button
$newRemoveLink = $innerDiv.find('a#remove' + counter); // tlw72 changed button to link $newRemoveLink = $innerDiv.find('a#remove' + counter); // tlw72 changed button to link
//remove the content entirely //remove the content entirely
$newRemoveLink.click(function() { $newRemoveLink.click(function(event) {
//if content type of what is being deleted is browse class group, then //if content type of what is being deleted is browse class group, then
//add browse classgroup back to set of options //add browse classgroup back to set of options
var contentType = $innerDiv.find("section.pageContent").attr("contentType"); var contentType = $innerDiv.find("section.pageContent").attr("contentType");
@ -402,6 +422,8 @@ var pageManagementUtils = {
//remove the section //remove the section
$innerDiv.parent("div").remove(); $innerDiv.parent("div").remove();
pageManagementUtils.adjustSaveButtonHeight(); pageManagementUtils.adjustSaveButtonHeight();
//Because this is now a link, have to prevent default action of navigating to link
event.preventDefault();
}); });
}, },
resetClassGroupSection:function() { resetClassGroupSection:function() {

View file

@ -13,12 +13,12 @@
var menuItemData = []; var menuItemData = [];
</script> </script>
<h3>Menu management</h3> <h3>Menu Ordering</h3>
<#-- List the menu items --> <#-- List the menu items -->
<ul class="menuItems"> <ul class="menuItems">
<#list hasElement.statements as statement> <#list hasElement.statements as statement>
<li class="menuItem"><#include "${hasElement.template}"> <span class="controls"><@p.editingLinks "hasElement" statement editable /></span></li> <li class="menuItem"><#include "${hasElement.template}"> <span class="controls"><!--p.editingLinks "hasElement" statement editable /--></span></li>
</#list> </#list>
</ul> </ul>
@ -29,6 +29,7 @@
<input type="hidden" name="typeOfNew" value="http://vitro.mannlib.cornell.edu/ontologies/display/1.1#Page"> <input type="hidden" name="typeOfNew" value="http://vitro.mannlib.cornell.edu/ontologies/display/1.1#Page">
<input type="hidden" name="switchToDisplayModel" value="1"> <input type="hidden" name="switchToDisplayModel" value="1">
<input type="hidden" name="editForm" value="edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.ManagePageGenerator" role="input"> <input type="hidden" name="editForm" value="edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.ManagePageGenerator" role="input">
<input type="hidden" name="addMenuItem" value="true" />
<input id="submit" value="Add new menu page" role="button" type="submit" > <input id="submit" value="Add new menu page" role="button" type="submit" >
</form> </form>

View file

@ -20,7 +20,7 @@
</#if> </#if>
<#if siteConfig.menuManagement?has_content> <#if siteConfig.menuManagement?has_content>
<li role="listitem"><a href="${siteConfig.menuManagement}" title="Menu management">Menu management</a></li> <li role="listitem"><a href="${siteConfig.menuManagement}" title="Menu ordering">Menu ordering</a></li>
</#if> </#if>
<#if siteConfig.restrictLogins?has_content> <#if siteConfig.restrictLogins?has_content>

View file

@ -51,7 +51,7 @@
</li> </li>
</#list> </#list>
</ul><br /> </ul><br />
<input type="button" id="doneWithContent" class="doneWithContent" name="moreContent" value="Done" /> <input type="button" id="doneWithContent" class="doneWithContent" name="doneWithContent" value="Done" />
</section> </section>
</section> </section>
<#--Include JavaScript specific to the types of data getters related to this content--> <#--Include JavaScript specific to the types of data getters related to this content-->

View file

@ -6,6 +6,7 @@ scripts list.-->
<script type="text/javascript"> <script type="text/javascript">
var customFormData = { var customFormData = {
menuAction:"${menuAction}", menuAction:"${menuAction}",
addMenuItem:"${addMenuItem}",
dataGetterLabelToURI:{ dataGetterLabelToURI:{
//maps labels to URIs //maps labels to URIs
"browseClassGroup": "java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.ClassGroupPageData", "browseClassGroup": "java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.ClassGroupPageData",

View file

@ -6,6 +6,6 @@
<input type="text" name="saveToVar" size="20" value="" id="fixedHTMLSaveToVar" role="input" /> <input type="text" name="saveToVar" size="20" value="" id="fixedHTMLSaveToVar" role="input" />
<label id="fixedHTMLValueLabel" for="fixedHTMLValue">Enter fixed HTML here<span id="fixedHTMLValueSpan"></span><span class="requiredHint"> *</span></label> <label id="fixedHTMLValueLabel" for="fixedHTMLValue">Enter fixed HTML here<span id="fixedHTMLValueSpan"></span><span class="requiredHint"> *</span></label>
<textarea id="fixedHTMLValue" name="htmlValue" cols="70" rows="15" style="margin-bottom:7px"></textarea><br /> <textarea id="fixedHTMLValue" name="htmlValue" cols="70" rows="15" style="margin-bottom:7px"></textarea><br />
<input type="button" id="doneWithContent" name="moreContent" value="Done" class="doneWithContent" /> <input type="button" id="doneWithContent" name="doneWithContent" value="Done" class="doneWithContent" />
</section> </section>
${scripts.add('<script type="text/javascript" src="${urls.base}/js/menupage/processFixedHTMLDataGetterContent.js"></script>')} ${scripts.add('<script type="text/javascript" src="${urls.base}/js/menupage/processFixedHTMLDataGetterContent.js"></script>')}

View file

@ -8,6 +8,6 @@
<input type="text" name="queryModel" size="20" value="" id="queryModel" role="input" style="display:none"/> <input type="text" name="queryModel" size="20" value="" id="queryModel" role="input" style="display:none"/>
<label id="queryLabel" for="queryLabel"><span id="querySpan">Enter SPARQL query here</span><span class="requiredHint"> *</span></label> <label id="queryLabel" for="queryLabel"><span id="querySpan">Enter SPARQL query here</span><span class="requiredHint"> *</span></label>
<textarea id="query" name="query" cols="70" rows="15" style="margin-bottom:7px"></textarea><br /> <textarea id="query" name="query" cols="70" rows="15" style="margin-bottom:7px"></textarea><br />
<input type="button" id="doneWithContent" class="doneWithContent" name="moreContent" value="Done" /> <input type="button" id="doneWithContent" class="doneWithContent" name="doneWithContent" value="Done" />
</section> </section>
${scripts.add('<script type="text/javascript" src="${urls.base}/js/menupage/processSparqlDataGetterContent.js"></script>')} ${scripts.add('<script type="text/javascript" src="${urls.base}/js/menupage/processSparqlDataGetterContent.js"></script>')}

View file

@ -11,6 +11,10 @@
<#assign menuItem = ""/> <#assign menuItem = ""/>
<#assign menuLinkText = "" /> <#assign menuLinkText = "" />
<#assign menuPosition = pageData.highestMenuPosition /> <#assign menuPosition = pageData.highestMenuPosition />
<#assign addMenuItem = "" />
<#if pageData.addMenuItem?has_content>
<#assign addMenuItem = pageData.addMenuItem />
</#if>
<#--Existing Values For Editing condition--> <#--Existing Values For Editing condition-->
<#assign literalValues = editConfiguration.existingLiteralValues /> <#assign literalValues = editConfiguration.existingLiteralValues />
<#assign uriValues = editConfiguration.existingUriValues /> <#assign uriValues = editConfiguration.existingUriValues />
@ -84,11 +88,11 @@
<input type="text" name="customTemplate" value="${customTemplate!''}" size="40" role="input" /><span class="requiredHint"> *</span> <input type="text" name="customTemplate" value="${customTemplate!''}" size="40" role="input" /><span class="requiredHint"> *</span>
</section> </section>
<p id="checkboxPTag"><input id="menuCheckbox" type="checkbox" name="menuCheckbox" <p id="checkboxPTag"><input id="menuCheckbox" type="checkbox" name="menuCheckbox"
<#if menuAction="Edit" && menuItem?has_content>checked="checked"</#if> <#if (menuAction="Edit" && menuItem?has_content) || (menuAction="Add" && addMenuItem = "true")>checked="checked"</#if>
> This is a menu page</p> > This is a menu page</p>
<section id="menu" role="region" <section id="menu" role="region"
<#--Do not display menu section unless editing an existing menu item--> <#--Do not display menu section unless editing an existing menu item-->
<#if menuAction = "Add" || (menuAction="Edit" && (!menuItem?has_content || menuItem = "")) > <#if (menuAction = "Add" && addMenuItem != "true") || (menuAction="Edit" && (!menuItem?has_content || menuItem = "")) >
class="hideMenuSection" class="hideMenuSection"
<#else> <#else>
class="showMenuSection" class="showMenuSection"