use of com.willshex.blogwt.shared.api.datatype.Page in project blogwt by billy1380.
the class EditPagePage method onfinished.
/* (non-Javadoc)
*
* @see com.willshex.blogwt.client.wizard.PagePlanFinishedHandler#onfinished
* (java.util.List) */
@Override
public void onfinished(List<WizardPage<?>> pages) {
Page page = null;
Post post = null;
for (WizardPage<?> wizardPage : pages) {
if (wizardPage instanceof EditPageWizardPage) {
page = ((EditPageWizardPage) wizardPage).getData();
if (page.posts != null) {
page.posts.clear();
}
} else if (wizardPage instanceof SelectPostWizardPage) {
if (page.posts == null) {
page.posts = new ArrayList<Post>();
}
post = ((SelectPostWizardPage) wizardPage).getData();
page.posts.add(post);
}
}
if (page.id == null) {
PageController.get().createPage(page);
} else {
PageController.get().updatePage(page);
}
}
use of com.willshex.blogwt.shared.api.datatype.Page in project blogwt by billy1380.
the class PageDetailPage method onAttach.
/* (non-Javadoc)
*
* @see com.willshex.blogwt.client.page.Page#onAttach() */
@Override
protected void onAttach() {
super.onAttach();
register(DefaultEventBus.get().addHandlerToSource(NavigationChangedEventHandler.TYPE, NavigationController.get(), (p, c) -> {
String slug = null;
if (PageType.fromString(c.getPage()) == PageType.PageDetailPageType) {
slug = c.getAction();
} else {
slug = c.getPageSlug();
}
if (slug == null) {
Page home;
if ((home = PageController.get().homePage()) != null) {
slug = home.slug;
}
}
if (slug == null) {
NavigationController.get().lost();
} else {
PageController.get().getPage(new Page().slug(slug), true);
}
pnlLoading.setVisible(true);
boolean canChange = SessionController.get().isAuthorised(Arrays.asList(PermissionHelper.create(PermissionHelper.MANAGE_PAGES)));
if (canChange) {
getElement().insertFirst(elToolbar);
} else {
elToolbar.removeFromParent();
}
}));
register(DefaultEventBus.get().addHandlerToSource(GetPageEventHandler.TYPE, PageController.get(), this));
register(DefaultEventBus.get().addHandlerToSource(DeletePageEventHandler.TYPE, PageController.get(), this));
register(PostHelper.handlePluginContentReady());
}
use of com.willshex.blogwt.shared.api.datatype.Page in project blogwt by billy1380.
the class HeaderPart method setupNavBarPages.
private void setupNavBarPages() {
String titleInNavBar = PropertyController.get().stringProperty(PropertyHelper.TITLE_IN_NAVBAR);
boolean removedHome = false;
if (titleInNavBar == null || titleInNavBar.contains(PropertyHelper.TITLE_VALUE)) {
elName.setInnerText(PropertyController.get().title());
} else if (titleInNavBar.equals(PropertyHelper.NONE_VALUE)) {
btnHome.removeFromParent();
removedHome = true;
} else {
elName.removeFromParent();
}
boolean foundBrandPage = false, addedBlog = false;
List<Page> pages;
SafeUri href;
Map<Long, Page> possibleParents = new HashMap<Long, Page>();
if ((pages = PageController.get().getHeaderPages()) != null) {
for (Page page : pages) {
if (page.priority != null && page.priority.floatValue() == 0.0f && !removedHome) {
btnHome.setHref(PageTypeHelper.slugToHref(page.slug));
foundBrandPage = true;
} else {
if (page.priority != null && page.priority.floatValue() > 2 && (foundBrandPage || removedHome) && !addedBlog) {
href = PageTypeHelper.asHref(PageType.PostsPageType);
addItem(elNavLeft, SafeHtmlUtils.fromSafeConstant("Blog"), href);
addedBlog = true;
}
Element el;
if (page.parent == null) {
href = PageTypeHelper.slugToHref(page.slug);
if (possibleParents.get(page.id) == null) {
addItem(elNavLeft, SafeHtmlUtils.fromString(page.title), href);
possibleParents.put(page.id, page);
} else {
possibleParents.put(page.id, page);
swapTitle(PageTypeHelper.slugToTargetHistoryToken("pageid_" + page.id), HeaderTemplates.INSTANCE.openableTitle(page.title), href);
}
} else {
Page parent;
if ((parent = possibleParents.get(page.parent.id)) != null) {
el = getOpenable(PageTypeHelper.slugToTargetHistoryToken(parent.slug));
if (el == null) {
el = getOpenable(PageTypeHelper.slugToTargetHistoryToken("pageid_" + parent.id));
}
if (el == null) {
el = getItem(PageTypeHelper.slugToTargetHistoryToken(parent.slug));
if (el != null) {
el = convertItemToOpenable(PageTypeHelper.slugToTargetHistoryToken(parent.slug), HeaderTemplates.INSTANCE.openableTitle(parent.title));
}
}
} else {
String dummySlug = "pageid_" + page.parent.id;
el = addOpenable(elNavLeft, HeaderTemplates.INSTANCE.openableTitle(dummySlug), PageTypeHelper.slugToHref(dummySlug));
possibleParents.put(page.parent.id, page.parent);
}
if (el != null) {
href = PageTypeHelper.slugToHref(page.slug);
addItem(el.getFirstChildElement().getNextSiblingElement(), SafeHtmlUtils.fromString(page.title), href);
}
}
}
}
}
if (foundBrandPage || removedHome) {
if (!addedBlog) {
href = PageTypeHelper.asHref(PageType.PostsPageType);
addItem(elNavLeft, SafeHtmlUtils.fromSafeConstant("Blog"), href);
}
} else {
btnHome.setHref(PageTypeHelper.asHref(PageType.PostsPageType));
}
ensureItems().put(PageType.AllPostsPageType.asTargetHistoryToken(), elPosts);
ensureItems().put(PageType.PagesPageType.asTargetHistoryToken(), elPages);
ensureItems().put(PageType.PropertiesPageType.asTargetHistoryToken(), elProperties);
ensureItems().put(PageType.UsersPageType.asTargetHistoryToken(), elUsers);
ensureItems().put(PageType.RolesPageType.asTargetHistoryToken(), elRoles);
ensureItems().put(PageType.PermissionsPageType.asTargetHistoryToken(), elPermissions);
ensureItems().put(PageType.ResourcesPageType.asTargetHistoryToken(), elResources);
ensureItems().put(PageType.MetaNotificationsPageType.asTargetHistoryToken(), elMetaNotifications);
elAdmin.removeFromParent();
elAccount.removeFromParent();
}
use of com.willshex.blogwt.shared.api.datatype.Page in project blogwt by billy1380.
the class GetPagesActionHandler method handle.
/* (non-Javadoc)
*
* @see
* com.willshex.gson.web.service.server.ActionHandler#handle(com.willshex.
* gson.web.service.shared.Request,
* com.willshex.gson.web.service.shared.Response) */
@Override
protected void handle(GetPagesRequest input, GetPagesResponse output) throws Exception {
ApiValidator.request(input, GetPagesRequest.class);
ApiValidator.accessCode(input.accessCode, "input.accessCode");
output.session = input.session = SessionValidator.lookupCheckAndExtend(input.session, "input.session");
if (input.pager == null) {
input.pager = PagerHelper.createDefaultPager();
}
if (input.query == null || input.query.trim().length() == 0) {
output.pages = PageServiceProvider.provide().getPages(input.includePosts, input.pager.start, input.pager.count, PageSortType.fromString(input.pager.sortBy), input.pager.sortDirection);
} else {
output.pages = PageServiceProvider.provide().getPartialSlugPages(input.query, input.includePosts, input.pager.start, input.pager.count, PageSortType.fromString(input.pager.sortBy), input.pager.sortDirection);
}
Map<Long, User> owners = new HashMap<Long, User>();
Long id;
for (Page page : output.pages) {
id = keyToId(page.ownerKey);
page.owner = owners.get(id);
if (page.owner == null) {
owners.put(id, page.owner = UserHelper.stripSensitive(UserServiceProvider.provide().getUser(id)));
}
}
output.pager = PagerHelper.moveForward(input.pager);
}
use of com.willshex.blogwt.shared.api.datatype.Page in project blogwt by billy1380.
the class SearchController method fetchSearchResults.
private void fetchSearchResults(String query) {
final SearchAllRequest input = ApiHelper.setAccessCode(new SearchAllRequest());
input.session = SessionController.get().sessionForApiCall();
input.query = query;
if (searchAllRequest != null) {
searchAllRequest.cancel();
}
searchAllRequest = ApiHelper.createSearchClient().searchAll(input, new AsyncCallback<SearchAllResponse>() {
@Override
public void onSuccess(SearchAllResponse output) {
searchAllRequest = null;
if (output.status == StatusType.StatusTypeSuccess) {
List<SearchResult> results = new ArrayList<SearchController.SearchResult>();
if (output.posts != null) {
for (Post post : output.posts) {
results.add(new SearchResult(post));
}
}
if (output.pages != null) {
for (Page page : output.pages) {
results.add(new SearchResult(page));
}
}
if (output.users != null) {
for (User user : output.users) {
results.add(new SearchResult(user));
}
}
updateRowCount(results.size(), true);
updateRowData(0, results);
}
DefaultEventBus.get().fireEventFromSource(new SearchAllSuccess(input, output), SearchController.this);
}
@Override
public void onFailure(Throwable caught) {
searchAllRequest = null;
DefaultEventBus.get().fireEventFromSource(new SearchAllFailure(input, caught), SearchController.this);
}
});
}
Aggregations