<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>JSDoc: Source: models/Dir.js</title> <script src="scripts/prettify/prettify.js"> </script> <script src="scripts/prettify/lang-css.js"> </script> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css"> <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css"> </head> <body> <div id="main"> <h1 class="page-title">Source: models/Dir.js</h1> <section> <article> <pre class="prettyprint source linenums"><code>var assign = require('object-assign'); var Node = require('./Node'); /** * Creates a new Dir reference, based on output from the `p4 dirs` command. * * @param {object} obj Initialize the instance with data from the server (typical) * @constructor * @memberOf models */ function Dir(obj) { this._data = obj || {}; /** * The immediate directories and files under this directory. * * @type {Array<PathItem>} */ this.children = []; var self = this; Object.defineProperties(this, { /** * The directory path in the server. * * @type string * @name models.Dir#dir * @memberOf models.Dir * @readonly */ 'dir': { get: function() { return self._data['Dir']; } }, /** * For consistency with Node operations * * @type string * @name models.Dir#name * @memberOf models.Dir * @readonly */ 'name': { get: function() { return this.pathId[this.pathId.length - 1]; } }, /** * For consistency with Node operations * * @type Array<string> * @name models.Dir#pathId * @memberOf models.Dir * @readonly */ 'pathId': { get: function() { var path = this.dir; if (path.startsWith('//')) { path = path.substring(2); } return path.split('/'); } } }); } assign(Dir.prototype, Node, { }); module.exports = Dir; </code></pre> </article> </section> </div> <nav> <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="HelixWebServicesClient.html">HelixWebServicesClient</a></li><li><a href="models.Depot.html">Depot</a></li><li><a href="models.Dir.html">Dir</a></li><li><a href="models.File.html">File</a></li></ul><h3>Mixins</h3><ul><li><a href="Node.html">Node</a></li></ul><h3>Global</h3><ul><li><a href="global.html#addSessionExpiredHandler">addSessionExpiredHandler</a></li></ul> </nav> <br class="clear"> <footer> Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.0-dev</a> on Wed Jun 24 2015 12:48:35 GMT-0700 (PDT) </footer> <script> prettyPrint(); </script> <script src="scripts/linenumber.js"> </script> </body> </html>
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 15741 | ptomiak | Branch HWS for my use. | ||
//guest/perforce_software/helix-web-services/main/build/doc/helix_web_services_client_js/models_Dir.js.html | |||||
#2 | 14151 | tjuricek |
Add depot tree control and selection to the create projects page. Styling and error checking is kept to a minimum for the time being. Our goal is just internal workflow and feedback. |
||
#1 | 14108 | tjuricek |
Added models for handling Perforce server depot listing and traversal. This is not complete, however, the models are a start to making it easy to generate a tree control. (Most tree controls in the wild assume you know the tree structure from the start, which is not true in our case.) The tricky bit is making it easy to build the tree out given that you're visiting only one directory at a time. |