Skip to content

Commit

Permalink
enable publish only for markdown files
Browse files Browse the repository at this point in the history
  • Loading branch information
jjallaire committed May 12, 2012
1 parent f6957d3 commit 8f8a0fc
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 11 deletions.
Expand Up @@ -19,12 +19,15 @@
import org.rstudio.core.client.files.FileSystemItem;
import org.rstudio.core.client.widget.ProgressIndicator;
import org.rstudio.core.client.widget.ProgressOperationWithInput;
import org.rstudio.studio.client.RStudioGinjector;
import org.rstudio.studio.client.application.Desktop;
import org.rstudio.studio.client.application.events.EventBus;
import org.rstudio.studio.client.common.FileDialogs;
import org.rstudio.studio.client.common.GlobalDisplay;
import org.rstudio.studio.client.common.SimpleRequestCallback;
import org.rstudio.studio.client.common.fileexport.FileExport;
import org.rstudio.studio.client.common.filetypes.FileType;
import org.rstudio.studio.client.common.filetypes.FileTypeRegistry;
import org.rstudio.studio.client.common.satellite.Satellite;
import org.rstudio.studio.client.htmlpreview.events.HTMLPreviewCompletedEvent;
import org.rstudio.studio.client.htmlpreview.events.HTMLPreviewOutputEvent;
Expand Down Expand Up @@ -70,7 +73,8 @@ public interface Display extends IsWidget

void showPreview(String url,
String htmlFile,
boolean enableSaveAs);
boolean enableSaveAs,
boolean enablePublish);

void print();
}
Expand All @@ -96,12 +100,8 @@ public HTMLPreviewPresenter(Display view,
fileSystemContext_ = fileSystemContext;
pFileExport_ = pFileExport;

binder.bind(commands, this);
binder.bind(commands, this);

// remove publish if it's not supported
if (!session.getSessionInfo().getRPubsEnabled())
commands.publishHTML().remove();

// map Ctrl-R to our internal refresh handler
Event.addNativePreviewHandler(new NativePreviewHandler() {
@Override
Expand Down Expand Up @@ -172,15 +172,17 @@ public void onHTMLPreviewCompleted(HTMLPreviewCompletedEvent event)
{
previewRunning_ = false;

HTMLPreviewResult result = event.getResult();
HTMLPreviewResult result = event.getResult();
if (result.getSucceeded())
{
lastSuccessfulPreview_ = result;
view_.closeProgress();
view_.showPreview(
server_.getApplicationURL(result.getPreviewURL()),
result.getHtmlFile(),
result.getEnableSaveAs());
result.getEnableSaveAs(),
session_.getSessionInfo().getRPubsEnabled() &&
isMarkdownFile(result.getSourceFile()));
}
else
{
Expand Down Expand Up @@ -210,6 +212,15 @@ protected String getValue()
};
}

private boolean isMarkdownFile(String file)
{
FileSystemItem fsi = FileSystemItem.createFile(file);
FileTypeRegistry ftReg = RStudioGinjector.INSTANCE.getFileTypeRegistry();
FileType fileType = ftReg.getTypeForFile(fsi);
return fileType.equals(FileTypeRegistry.MARKDOWN) ||
fileType.equals(FileTypeRegistry.RMARKDOWN);
}

public void onActivated(HTMLPreviewParams params)
{
lastPreviewParams_ = params;
Expand Down
Expand Up @@ -99,8 +99,9 @@ private Toolbar createToolbar(Commands commands)

}

toolbar.addLeftSeparator();
toolbar.addLeftWidget(commands.publishHTML().createToolbarButton());
publishButtonSeparator_ = toolbar.addLeftSeparator();
toolbar.addLeftWidget(
publishButton_ = commands.publishHTML().createToolbarButton());


findTextBox_ = new FindTextBox("Find");
Expand Down Expand Up @@ -198,7 +199,8 @@ public void closeProgress()
@Override
public void showPreview(String url,
String htmlFile,
boolean enableSaveAs)
boolean enableSaveAs,
boolean enablePublish)
{
String shortFileName = StringUtil.shortPathName(
FileSystemItem.createFile(htmlFile),
Expand All @@ -207,6 +209,8 @@ public void showPreview(String url,
fileLabel_.setText(shortFileName);
saveHtmlPreviewAsSeparator_.setVisible(enableSaveAs);
saveHtmlPreviewAs_.setVisible(enableSaveAs);
publishButtonSeparator_.setVisible(enablePublish);
publishButton_.setVisible(enablePublish);
previewFrame_.navigate(url);
}

Expand Down Expand Up @@ -272,5 +276,7 @@ protected WindowEx getWindow()
private FindTextBox findTextBox_;
private Widget saveHtmlPreviewAsSeparator_;
private Widget saveHtmlPreviewAs_;
private Widget publishButtonSeparator_;
private Widget publishButton_;
private HTMLPreviewProgressDialog activeProgressDialog_;
}

0 comments on commit 8f8a0fc

Please sign in to comment.