From 2624bac0723adfd7c9a3af20b2ed0866dbcea982 Mon Sep 17 00:00:00 2001 From: Nick Poulden Date: Thu, 19 May 2011 15:05:07 -0700 Subject: [PATCH] IE can't deal with Docs.view.class so renamed to Docs.view.cls. Also started a production build rake task --- Rakefile | 18 ++++++++++++++++-- template/app/History.js | 8 +++++++- template/app/controller/Classes.js | 6 +++--- template/app/view/Viewport.js | 6 +++--- template/app/view/{class => cls}/Header.js | 2 +- .../app/view/{class => cls}/HoverMenuButton.js | 8 ++++---- template/app/view/{class => cls}/List.js | 2 +- template/app/view/{class => cls}/Overview.js | 6 +++--- template/app/view/{class => cls}/Panel.js | 6 +++--- template/app/view/{class => cls}/Show.js | 10 +++++----- template/app/view/{class => cls}/Toolbar.js | 8 ++++---- template/app/view/{class => cls}/Tree.js | 2 +- template/resources/sass/docs-ext.scss | 1 + 13 files changed, 52 insertions(+), 31 deletions(-) rename template/app/view/{class => cls}/Header.js (95%) rename template/app/view/{class => cls}/HoverMenuButton.js (92%) rename template/app/view/{class => cls}/List.js (99%) rename template/app/view/{class => cls}/Overview.js (98%) rename template/app/view/{class => cls}/Panel.js (85%) rename template/app/view/{class => cls}/Show.js (72%) rename template/app/view/{class => cls}/Toolbar.js (95%) rename template/app/view/{class => cls}/Tree.js (97%) diff --git a/Rakefile b/Rakefile index 8a5f834e6..34de3c599 100644 --- a/Rakefile +++ b/Rakefile @@ -36,14 +36,14 @@ def load_sdk_vars end end -def run_jsduck(paths) +def run_jsduck(paths, template_links = true) system [ "ruby bin/jsduck", # --external=Error to ignore the Error class that Ext.Error extends. "--external=Error", # to create symbolic links to template files instead of copying them over. # Useful for development. Turn off for deployment. - "--template-links", + (template_links ? "--template-links" : ""), '--link=\'%a\'', # Note that we wrap image template inside

because {@img} often # appears inline withing text, but that just looks ugly in HTML @@ -67,6 +67,20 @@ task :sdk do ]) end +desc "Run JSDuck on ExtJS SDK for export" +task :export do + load_sdk_vars + run_jsduck([ + "#{SDK_DIR}/extjs/src", + "#{SDK_DIR}/platform/src", + "#{SDK_DIR}/platform/core/src", + ], false) + + system "mkdir -p #{OUT_DIR}/extjs/resources/themes" + system "cp #{SDK_DIR}/extjs-all.js #{OUT_DIR}/extjs" + system "cp -r #{SDK_DIR}/resources/themes/images #{OUT_DIR}/extjs/resources/themes" +end + desc "Run JSDuck on the Docs app itself" task :docs do load_sdk_vars diff --git a/template/app/History.js b/template/app/History.js index da544f843..3dc6beed1 100644 --- a/template/app/History.js +++ b/template/app/History.js @@ -16,9 +16,14 @@ Ext.define("Docs.History", { // Parses current URL and navigates to the page navigate: function(token) { + if (this.ignoreChange) { + this.ignoreChange = false; + return; + } + var url = this.parseToken(token); if (url.type === "api") { - Docs.App.getController('Classes').loadClass(url.key); + Docs.App.getController('Classes').loadClass(url.key, true); } else if (url.type === "guide") { Docs.App.getController('Classes').showGuide(url.key, true); @@ -40,6 +45,7 @@ Ext.define("Docs.History", { * @param {String} token the part of URL after # */ push: function(token) { + this.ignoreChange = true; Ext.util.History.add(token); } }); diff --git a/template/app/controller/Classes.js b/template/app/controller/Classes.js index 4ebb52daa..90aef7269 100644 --- a/template/app/controller/Classes.js +++ b/template/app/controller/Classes.js @@ -9,8 +9,8 @@ Ext.define('Docs.controller.Classes', { ], views: [ - 'class.List', - 'class.Tree' + 'cls.List', + 'cls.Tree' ], init: function() { @@ -90,7 +90,7 @@ Ext.define('Docs.controller.Classes', { if (docTabPanel) { docTabPanel.setLoading(true); } - + Ext.data.JsonP.request({ url: this.getBaseUrl() + '/output/' + cls + '.js', callbackName: cls.replace(/\./g, '_'), diff --git a/template/app/view/Viewport.js b/template/app/view/Viewport.js index 4abdbb195..e3e82fcf4 100644 --- a/template/app/view/Viewport.js +++ b/template/app/view/Viewport.js @@ -6,8 +6,8 @@ Ext.define('Docs.view.Viewport', { extend: 'Ext.container.Viewport', requires: [ - 'Docs.view.class.Show', - 'Docs.view.class.List', + 'Docs.view.cls.Show', + 'Docs.view.cls.List', 'Docs.History' ], @@ -92,7 +92,7 @@ Ext.define('Docs.view.Viewport', { xtype: 'classlist', classData: Docs.overviewData }, - Ext.create('Docs.view.class.Show'), + Ext.create('Docs.view.cls.Show'), { autoScroll: true, xtype: 'container', diff --git a/template/app/view/class/Header.js b/template/app/view/cls/Header.js similarity index 95% rename from template/app/view/class/Header.js rename to template/app/view/cls/Header.js index 4db429748..de475a312 100644 --- a/template/app/view/class/Header.js +++ b/template/app/view/cls/Header.js @@ -1,7 +1,7 @@ /** * Renders class name and icon in page header. */ -Ext.define('Docs.view.class.Header', { +Ext.define('Docs.view.cls.Header', { extend: 'Ext.container.Container', padding: '5 0 17 0', alias: 'widget.classheader', diff --git a/template/app/view/class/HoverMenuButton.js b/template/app/view/cls/HoverMenuButton.js similarity index 92% rename from template/app/view/class/HoverMenuButton.js rename to template/app/view/cls/HoverMenuButton.js index fdafd70ee..065c4a1cb 100644 --- a/template/app/view/class/HoverMenuButton.js +++ b/template/app/view/cls/HoverMenuButton.js @@ -1,7 +1,7 @@ /** * Toolbar button with menu that appears when hovered over. */ -Ext.define('Docs.view.class.HoverMenuButton', { +Ext.define('Docs.view.cls.HoverMenuButton', { extend: 'Ext.toolbar.TextItem', componentCls: "hover-menu-button", @@ -43,7 +43,7 @@ Ext.define('Docs.view.class.HoverMenuButton', { }, mouseover: function() { // hide other menus - Ext.Array.forEach(Docs.view.class.HoverMenuButton.menus, function(menu) { + Ext.Array.forEach(Docs.view.cls.HoverMenuButton.menus, function(menu) { if (menu !== this.menu) { menu.setStyle({display: "none"}); } @@ -75,7 +75,7 @@ Ext.define('Docs.view.class.HoverMenuButton', { // clean up DOM this.menu.remove(); // remove from global menu list - Ext.Array.remove(Docs.view.class.HoverMenuButton.menus, this.menu); + Ext.Array.remove(Docs.view.cls.HoverMenuButton.menus, this.menu); this.callParent(arguments); }, @@ -88,7 +88,7 @@ Ext.define('Docs.view.class.HoverMenuButton', { this.menu.addListener('click', function() { this.menu.setStyle({display: "none"}); }, this); - Docs.view.class.HoverMenuButton.menus.push(this.menu); + Docs.view.cls.HoverMenuButton.menus.push(this.menu); }, renderMenuHtml: function() { diff --git a/template/app/view/class/List.js b/template/app/view/cls/List.js similarity index 99% rename from template/app/view/class/List.js rename to template/app/view/cls/List.js index 5d75b5197..b5e3038c7 100644 --- a/template/app/view/class/List.js +++ b/template/app/view/cls/List.js @@ -2,7 +2,7 @@ * List of classes on front page. * Together with links to guides and icons legend. */ -Ext.define('Docs.view.class.List', { +Ext.define('Docs.view.cls.List', { extend: 'Ext.container.Container', alias : 'widget.classlist', id: 'classlist', diff --git a/template/app/view/class/Overview.js b/template/app/view/cls/Overview.js similarity index 98% rename from template/app/view/class/Overview.js rename to template/app/view/cls/Overview.js index 7098607be..574404c94 100644 --- a/template/app/view/class/Overview.js +++ b/template/app/view/cls/Overview.js @@ -1,11 +1,11 @@ /** * Renders the whole class-documentation page. */ -Ext.define('Docs.view.class.Overview', { +Ext.define('Docs.view.cls.Overview', { extend: 'Ext.panel.Panel', alias: 'widget.classoverview', requires: [ - 'Docs.view.class.Toolbar', + 'Docs.view.cls.Toolbar', 'Docs.Syntax' ], @@ -46,7 +46,7 @@ Ext.define('Docs.view.class.Overview', { if (this.toolbar) { this.removeDocked(this.toolbar, true); } - this.toolbar = Ext.create('Docs.view.class.Toolbar', { + this.toolbar = Ext.create('Docs.view.cls.Toolbar', { docClass: this.docClass }); this.addDocked(this.toolbar); diff --git a/template/app/view/class/Panel.js b/template/app/view/cls/Panel.js similarity index 85% rename from template/app/view/class/Panel.js rename to template/app/view/cls/Panel.js index e540745d1..56b311f5a 100644 --- a/template/app/view/class/Panel.js +++ b/template/app/view/cls/Panel.js @@ -2,10 +2,10 @@ * The documentation panel. * TODO: Source code tab, Examples, Q&A */ -Ext.define('Docs.view.class.Panel', { +Ext.define('Docs.view.cls.Panel', { extend: 'Ext.tab.Panel', requires: [ - 'Docs.view.class.Overview' + 'Docs.view.cls.Overview' ], id: 'docTabPanel', @@ -25,7 +25,7 @@ Ext.define('Docs.view.class.Panel', { initComponent: function() { this.items = [ - Ext.create('Docs.view.class.Overview', { + Ext.create('Docs.view.cls.Overview', { docClass: this.docClass }) ]; diff --git a/template/app/view/class/Show.js b/template/app/view/cls/Show.js similarity index 72% rename from template/app/view/class/Show.js rename to template/app/view/cls/Show.js index ade60e404..f9c806a08 100644 --- a/template/app/view/class/Show.js +++ b/template/app/view/cls/Show.js @@ -2,12 +2,12 @@ * The class documentation page. Consists of the header (class name) and class panel. * TODO: Add framework version */ -Ext.define('Docs.view.class.Show', { +Ext.define('Docs.view.cls.Show', { extend: 'Ext.container.Container', alias: 'widget.showclass', requires: [ - 'Docs.view.class.Header', - 'Docs.view.class.Panel' + 'Docs.view.cls.Header', + 'Docs.view.cls.Panel' ], layout: { @@ -17,10 +17,10 @@ Ext.define('Docs.view.class.Show', { initComponent: function() { this.items = [ - Ext.create('Docs.view.class.Header', { + Ext.create('Docs.view.cls.Header', { docClass: this.docClass }), - Ext.create('Docs.view.class.Panel', { + Ext.create('Docs.view.cls.Panel', { docClass: this.docClass, flex: 1 }) diff --git a/template/app/view/class/Toolbar.js b/template/app/view/cls/Toolbar.js similarity index 95% rename from template/app/view/class/Toolbar.js rename to template/app/view/cls/Toolbar.js index 4620ffb14..7aa68355c 100644 --- a/template/app/view/class/Toolbar.js +++ b/template/app/view/cls/Toolbar.js @@ -1,10 +1,10 @@ /** * Toolbar with menus providing quick access to class members. */ -Ext.define('Docs.view.class.Toolbar', { +Ext.define('Docs.view.cls.Toolbar', { extend: 'Ext.toolbar.Toolbar', requires: [ - 'Docs.view.class.HoverMenuButton' + 'Docs.view.cls.HoverMenuButton' ], dock: 'top', @@ -77,7 +77,7 @@ Ext.define('Docs.view.class.Toolbar', { }, createMemberButton: function(cfg) { - return Ext.create('Docs.view.class.HoverMenuButton', { + return Ext.create('Docs.view.cls.HoverMenuButton', { text: cfg.text, cls: 'icon-'+cfg.type, links: Ext.Array.map(cfg.members, function(m) { @@ -92,7 +92,7 @@ Ext.define('Docs.view.class.Toolbar', { }, createSubClassesButton: function(subclasses) { - return Ext.create('Docs.view.class.HoverMenuButton', { + return Ext.create('Docs.view.cls.HoverMenuButton', { text: "Sub Classes", cls: 'icon-subclass', links: Ext.Array.map(subclasses, function(cls) { diff --git a/template/app/view/class/Tree.js b/template/app/view/cls/Tree.js similarity index 97% rename from template/app/view/class/Tree.js rename to template/app/view/cls/Tree.js index f15cbffb8..55fa44240 100644 --- a/template/app/view/class/Tree.js +++ b/template/app/view/cls/Tree.js @@ -1,7 +1,7 @@ /** * The class tree */ -Ext.define('Docs.view.class.Tree', { +Ext.define('Docs.view.cls.Tree', { extend: 'Ext.tree.Panel', alias : 'widget.classtree', diff --git a/template/resources/sass/docs-ext.scss b/template/resources/sass/docs-ext.scss index 4fde9dd16..9ef0cf453 100644 --- a/template/resources/sass/docs-ext.scss +++ b/template/resources/sass/docs-ext.scss @@ -10,6 +10,7 @@ $font-family: Helvetica Neue, Arial, sans-serif; $tab-base-color: #e9e9e9; $toolbar-background-color: #e9e9e9; $panel-border-color: #bfbfbf; +$panel-body-font-size: 13px; $grid-row-cell-selected-background-color: #D9E8FB; @import 'ext4/default/all';