UNPKG

sf-placeholder

Version:

Creates a Visualforce Page and placeholder Static Resource for use with Angular JS.

80 lines (63 loc) 3.4 kB
var jsforce = require('jsforce'); var settings = require('../config/settings.js'); var btoa = require('btoa'); module.exports = { buildPage : function(pageName){ var page = '<apex:page showHeader="false" sidebar="false" standardStylesheets="false" cache="false" expires="0" >' page += '<html class="no-js">'; page += '<head>'; page += '<base href="/'+pageName+'" target="_blank" />' page += '<meta charset="utf-8"/>'; page += '<!-- <title>spa</title> -->'; page += '<meta name="description" content=""/>'; page += '<meta name="viewport" content="width=device-width"/>'; page += '<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet" />'; page += '<apex:includeScript value="{!URLFOR($Resource.'+pageName+',\'bundle.js\')}"/>'; page += '<script type="text/javascript">'; page += 'var path = window.location.pathname;'; page += 'var page = path.split("/").pop();'; page += 'if(document.URL.indexOf("force") > 0) {'; page += 'staticURL = "{!$Resource.' + pageName + '}";'; page += '}else{'; page += 'staticURL= "";'; page += '}'; page += 'configSettings = {'; page += 'staticPath: staticURL,'; page += 'config: {},'; page += 'remoteActions: {},'; page += 'baseName: page' page += '};'; page += '</script>'; page += '</head>'; page += '<body ng-app="app">'; page += '<div ng-controller="MainController">'; page += '<ui-view></ui-view>'; page += '</div>'; page += '</body>'; page += '</html>'; page +='</apex:page>'; var b64Page = btoa(page); var conn = new jsforce.Connection(); conn.login(settings.getUserName(),'' + settings.getPassword() + ''+ settings.getToken(), function(err, res) { // creating metadata in array var metadata = [{ fullName: pageName, label: pageName, content: b64Page, description : 'A visualforce page' }]; conn.metadata.create('ApexPage', metadata, function(err, results) { if (err) { console.log(err); console.log(results); } else { if(results.success === true){ console.log('New Visualforce Page: ' + results.fullName + ' created!'); }else{ console.log(results); } } }); }); } };