From abb9a61d0ddc151151c4df4f45299a2b0002cb0f Mon Sep 17 00:00:00 2001 From: Hayden Smith Date: Thu, 19 Jul 2007 10:40:05 +0000 Subject: [PATCH] Moved CMS module to open source path git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/trunk@39000 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- _config.php | 19 + code/AssetAdmin.php | 660 ++++++++++ code/AssetTableField.php | 130 ++ code/BulkLoader.php | 67 + code/BulkLoaderAdmin.php | 123 ++ code/CMSActionOptionsForm.php | 17 + code/CMSHelp.php | 8 + code/CMSMain.php | 1132 +++++++++++++++++ code/Diff.php | 795 ++++++++++++ code/FileList.php | 17 + code/GenericDataAdmin.php | 650 ++++++++++ code/ImprintStats.php | 66 + code/LeftAndMain.php | 761 +++++++++++ code/MemberList.php | 271 ++++ code/MemberTableField.php | 412 ++++++ code/Newsletter/BatchProcess.php | 93 ++ code/Newsletter/BouncedList.php | 46 + code/Newsletter/Newsletter.php | 99 ++ code/Newsletter/NewsletterEmailProcess.php | 97 ++ code/Newsletter/NewsletterList.php | 57 + code/Newsletter/NewsletterType.php | 55 + code/Newsletter/RecipientImportField.php | 372 ++++++ code/Newsletter/SubscribeForm.php | 254 ++++ code/Newsletter/TemplateList.php | 40 + code/Newsletter/Unsubscribe.php | 178 +++ code/Newsletter/UnsubscribedList.php | 49 + code/NewsletterAdmin.php | 686 ++++++++++ code/PageTypes/UserDefinedForm.php | 320 +++++ code/ReportAdmin.php | 129 ++ code/SecurityAdmin.php | 334 +++++ code/SideReport.php | 64 + code/StaticExporter.php | 87 ++ code/ThumbnailStripField.php | 133 ++ code/sitefeatures/Akismet.php | 397 ++++++ code/sitefeatures/PageComment.php | 144 +++ code/sitefeatures/PageCommentInterface.php | 121 ++ code/sitefeatures/SSAkismet.php | 26 + css/GenericDataAdmin.css | 236 ++++ css/Image_iframe.css | 146 +++ css/LeftAndMain_printable.css | 44 + css/cms_left.css | 404 ++++++ css/cms_right.css | 765 +++++++++++ css/dialog.css | 18 + css/layout.css | 433 +++++++ css/typography.css | 49 + images/add.gif | Bin 0 -> 1004 bytes images/alert-bad.gif | Bin 0 -> 1355 bytes images/alert-good.gif | Bin 0 -> 1220 bytes images/block.png | Bin 0 -> 3536 bytes images/bullet_arrow_down.png | Bin 0 -> 201 bytes images/bullet_arrow_up.png | Bin 0 -> 201 bytes images/button-bg.gif | Bin 0 -> 176 bytes images/button-left.gif | Bin 0 -> 334 bytes images/button-right.gif | Bin 0 -> 555 bytes images/check.png | Bin 0 -> 3591 bytes images/delete-small.gif | Bin 0 -> 181 bytes images/delete.gif | Bin 0 -> 356 bytes images/dialogs/alert.gif | Bin 0 -> 1916 bytes images/dialogs/alert.png | Bin 0 -> 1778 bytes images/down.gif | Bin 0 -> 570 bytes images/edit.gif | Bin 0 -> 1054 bytes images/loading.gif | Bin 0 -> 7009 bytes images/locked.gif | Bin 0 -> 973 bytes images/mainmenu/content.gif | Bin 0 -> 790 bytes images/mainmenu/content.png | Bin 0 -> 3650 bytes images/mainmenu/emails.gif | Bin 0 -> 807 bytes images/mainmenu/files.gif | Bin 0 -> 899 bytes images/mainmenu/help.gif | Bin 0 -> 809 bytes images/mainmenu/help.png | Bin 0 -> 3832 bytes images/mainmenu/logo-smallwhite.png | Bin 0 -> 3184 bytes images/mainmenu/logo.gif | Bin 0 -> 231 bytes images/mainmenu/logo.png | Bin 0 -> 6559 bytes images/mainmenu/members.gif | Bin 0 -> 901 bytes images/mainmenu/members.png | Bin 0 -> 4107 bytes images/mainmenu/mgmt.png | Bin 0 -> 3873 bytes images/mainmenu/reports.gif | Bin 0 -> 873 bytes images/mainmenu/top-bg.gif | Bin 0 -> 156 bytes images/network-save-bw.gif | Bin 0 -> 623 bytes images/network-save.gif | Bin 0 -> 1849 bytes images/network-saveOLD.gif | Bin 0 -> 913 bytes images/pagination/record-export.png | Bin 0 -> 817 bytes images/pagination/record-first-g.png | Bin 0 -> 671 bytes images/pagination/record-first.png | Bin 0 -> 769 bytes images/pagination/record-last-g.png | Bin 0 -> 587 bytes images/pagination/record-last.png | Bin 0 -> 696 bytes images/pagination/record-next-g.png | Bin 0 -> 521 bytes images/pagination/record-next.png | Bin 0 -> 606 bytes images/pagination/record-prev-g.png | Bin 0 -> 528 bytes images/pagination/record-prev.png | Bin 0 -> 575 bytes images/pagination/record-print.png | Bin 0 -> 818 bytes images/panels/EditPage.png | Bin 0 -> 537 bytes images/panels/MySite.png | Bin 0 -> 1172 bytes images/right.gif | Bin 0 -> 574 bytes images/show.png | Bin 0 -> 693 bytes images/sidetabs/advertisements.gif | Bin 0 -> 685 bytes images/sidetabs/advertisements_over.gif | Bin 0 -> 924 bytes images/sidetabs/associations.gif | Bin 0 -> 1545 bytes images/sidetabs/associations_over.gif | Bin 0 -> 704 bytes images/sidetabs/categories.gif | Bin 0 -> 1607 bytes images/sidetabs/categories_over.gif | Bin 0 -> 990 bytes images/sidetabs/comments.gif | Bin 0 -> 712 bytes images/sidetabs/comments_over.gif | Bin 0 -> 698 bytes images/sidetabs/reports.gif | Bin 0 -> 693 bytes images/sidetabs/reports_over.gif | Bin 0 -> 693 bytes images/sidetabs/search.gif | Bin 0 -> 658 bytes images/sidetabs/search_over.gif | Bin 0 -> 682 bytes images/sidetabs/sitemap.gif | Bin 0 -> 696 bytes images/sidetabs/sitemap_over.gif | Bin 0 -> 714 bytes images/sidetabs/tasklist.gif | Bin 0 -> 682 bytes images/sidetabs/tasklist_over.gif | Bin 0 -> 691 bytes images/sidetabs/template normal.psd | Bin 0 -> 161868 bytes images/sidetabs/template over.psd | Bin 0 -> 157114 bytes images/sidetabs/versions.gif | Bin 0 -> 666 bytes images/sidetabs/versions_over.gif | Bin 0 -> 684 bytes images/sidetabs/waitingon.gif | Bin 0 -> 720 bytes images/sidetabs/waitingon_over.gif | Bin 0 -> 738 bytes images/tables/checkbox.png | Bin 0 -> 148 bytes images/tables/thead.png | Bin 0 -> 154 bytes images/textures/ToolBar.png | Bin 0 -> 176 bytes images/textures/bottom.png | Bin 0 -> 202 bytes images/textures/obar-18.gif | Bin 0 -> 88 bytes images/textures/obar-light.png | Bin 0 -> 214 bytes images/textures/obar.gif | Bin 0 -> 99 bytes images/textures/seperator.png | Bin 0 -> 148 bytes images/tickbox-canttick.gif | Bin 0 -> 86 bytes images/tickbox-greyticked.gif | Bin 0 -> 76 bytes images/tickbox-ticked.gif | Bin 0 -> 70 bytes images/tickbox-unticked.gif | Bin 0 -> 70 bytes images/treeicons/book-closedfolder.gif | Bin 0 -> 147 bytes images/treeicons/book-file.gif | Bin 0 -> 147 bytes images/treeicons/book-openfolder.gif | Bin 0 -> 160 bytes images/treeicons/brokenlink-closedfolder.gif | Bin 0 -> 266 bytes images/treeicons/brokenlink-file.gif | Bin 0 -> 272 bytes images/treeicons/brokenlink-openfolder.gif | Bin 0 -> 262 bytes images/treeicons/draft-file.png | Bin 0 -> 3099 bytes images/treeicons/draft-folder.png | Bin 0 -> 563 bytes images/treeicons/element-closedfolder.gif | Bin 0 -> 461 bytes images/treeicons/element-file.gif | Bin 0 -> 918 bytes images/treeicons/element-openfolder.gif | Bin 0 -> 444 bytes images/treeicons/folder-closedfolder.gif | Bin 0 -> 210 bytes images/treeicons/folder-file.gif | Bin 0 -> 210 bytes images/treeicons/folder-openfolder.gif | Bin 0 -> 219 bytes images/treeicons/home-file (1).png | Bin 0 -> 611 bytes images/treeicons/home-file.png | Bin 0 -> 791 bytes images/treeicons/multi-user.gif | Bin 0 -> 554 bytes images/treeicons/multi-user.png | Bin 0 -> 611 bytes images/treeicons/page-gold-closedfolder.gif | Bin 0 -> 210 bytes images/treeicons/page-gold-file.gif | Bin 0 -> 211 bytes images/treeicons/page-gold-openfolder.gif | Bin 0 -> 219 bytes images/treeicons/page-shortcut-file.gif | Bin 0 -> 271 bytes images/treeicons/page-shortcut-gold-file.gif | Bin 0 -> 3014 bytes images/treeicons/preferences-closedfolder.gif | Bin 0 -> 798 bytes images/treeicons/preferences-file.gif | Bin 0 -> 798 bytes images/treeicons/preferences-openfolder.gif | Bin 0 -> 798 bytes images/treeicons/reports-file.png | Bin 0 -> 475 bytes images/treeicons/reports-foldericon.png | Bin 0 -> 445 bytes images/treeicons/reports-openfoldericon.png | Bin 0 -> 461 bytes images/treeicons/root.png | Bin 0 -> 336 bytes images/treeicons/sent-file.gif | Bin 0 -> 338 bytes images/treeicons/sent-folder.png | Bin 0 -> 488 bytes images/treeicons/task-file.gif | Bin 0 -> 487 bytes images/treeicons/user-file.gif | Bin 0 -> 774 bytes images/unlocked.gif | Bin 0 -> 936 bytes images/unlockedled.gif | Bin 0 -> 936 bytes images/workflow/note_edit.png | Bin 0 -> 3563 bytes images/workflow/note_new.png | Bin 0 -> 3756 bytes images/workflow/note_view.png | Bin 0 -> 3890 bytes images/workflow/rubberstamp.png | Bin 0 -> 3189 bytes javascript/AssetAdmin.js | 280 ++++ javascript/BulkLoaderAdmin.js | 15 + javascript/CMSMain.js | 0 javascript/CMSMain_left.js | 270 ++++ javascript/CMSMain_right.js | 123 ++ javascript/CommentList.js | 13 + javascript/ForumAdmin.js | 115 ++ javascript/GenericDataAdmin_left.js | 187 +++ javascript/GenericDataAdmin_right.js | 116 ++ javascript/ImprintStats.js | 84 ++ javascript/LeftAndMain.js | 816 ++++++++++++ javascript/LeftAndMain_left.js | 475 +++++++ javascript/LeftAndMain_right.js | 463 +++++++ javascript/MemberList.js | 322 +++++ javascript/MemberTableField.js | 298 +++++ javascript/MemberTableField_popup.js | 42 + javascript/NewsletterAdmin_left.js | 404 ++++++ javascript/NewsletterAdmin_right.js | 536 ++++++++ javascript/NewsletterMemberList.js | 172 +++ javascript/Newsletter_UploadForm.js | 13 + javascript/PageCommentInterface.js | 186 +++ javascript/ReportAdmin_left.js | 54 + javascript/ReportAdmin_right.js | 118 ++ javascript/SecurityAdmin_left.js | 147 +++ javascript/SecurityAdmin_right.js | 11 + javascript/SideReports.js | 70 + javascript/SideTabs.js | 358 ++++++ javascript/TaskList.js | 21 + javascript/ThumbnailStripField.js | 56 + javascript/dialog.js | 10 + javascript/tinymce.template.js | 42 + silverstripe_version | 1 + templates/AssetAdmin_uploadiframe.ss | 24 + templates/BulkLoaderAdmin_iframe.ss | 1 + templates/BulkLoaderAdmin_preview.ss | 9 + templates/CMSMain_dialog.ss | 36 + templates/CMSMain_versions.ss | 30 + templates/CommentList.ss | 14 + templates/Dialog.ss | 14 + templates/Includes/AssetAdmin_left.ss | 52 + templates/Includes/AssetAdmin_right.ss | 34 + templates/Includes/AssetTableField.ss | 27 + templates/Includes/BulkLoaderAdmin_left.ss | 20 + templates/Includes/BulkLoaderAdmin_right.ss | 7 + templates/Includes/CMSLeft.ss | 28 + templates/Includes/CMSMain_left.ss | 130 ++ templates/Includes/CMSMain_right.ss | 38 + templates/Includes/CMSMain_rightbottom.ss | 0 templates/Includes/CMSRight.ss | 21 + templates/Includes/Editor_toolbar.ss | 41 + templates/Includes/GenericDataAdmin_left.ss | 28 + templates/Includes/GenericDataAdmin_right.ss | 16 + templates/Includes/LeftAndMain_rightbottom.ss | 0 templates/Includes/MemberList_PageControls.ss | 15 + templates/Includes/MemberList_Table.ss | 42 + templates/Includes/MemberTableField.ss | 77 ++ .../Includes/NewsletterAdmin_BouncedList.ss | 24 + .../Includes/NewsletterAdmin_SiteTree.ss | 30 + .../NewsletterAdmin_UnsubscribedList.ss | 20 + templates/Includes/NewsletterAdmin_left.ss | 50 + templates/Includes/NewsletterAdmin_right.ss | 32 + templates/Includes/ReportAdmin_SiteTree.ss | 14 + templates/Includes/ReportAdmin_left.ss | 17 + templates/Includes/ReportAdmin_right.ss | 11 + templates/Includes/SecurityAdmin_left.ss | 28 + templates/Includes/SecurityAdmin_right.ss | 14 + templates/LeftAndMain.ss | 72 ++ templates/LeftAndMain_printable.ss | 12 + templates/MemberList.ss | 17 + templates/NewsletterList.ss | 19 + templates/Newsletter_RecipientImportField.ss | 48 + .../Newsletter_RecipientImportField_Table.ss | 46 + templates/PageCommentInterface.ss | 45 + .../PageCommentInterface_singlecomment.ss | 16 + templates/ReceivedFormSubmission.ss | 1 + templates/TaskList.ss | 10 + templates/ThumbnailStripField.ss | 3 + templates/WaitingOn.ss | 10 + templates/email/SubmittedFormEmail.ss | 20 + templates/email/ViewArchivedEmail.ss | 3 + 248 files changed, 18088 insertions(+) create mode 100644 _config.php create mode 100755 code/AssetAdmin.php create mode 100755 code/AssetTableField.php create mode 100755 code/BulkLoader.php create mode 100755 code/BulkLoaderAdmin.php create mode 100755 code/CMSActionOptionsForm.php create mode 100755 code/CMSHelp.php create mode 100644 code/CMSMain.php create mode 100755 code/Diff.php create mode 100755 code/FileList.php create mode 100755 code/GenericDataAdmin.php create mode 100755 code/ImprintStats.php create mode 100644 code/LeftAndMain.php create mode 100755 code/MemberList.php create mode 100755 code/MemberTableField.php create mode 100755 code/Newsletter/BatchProcess.php create mode 100755 code/Newsletter/BouncedList.php create mode 100755 code/Newsletter/Newsletter.php create mode 100755 code/Newsletter/NewsletterEmailProcess.php create mode 100755 code/Newsletter/NewsletterList.php create mode 100755 code/Newsletter/NewsletterType.php create mode 100755 code/Newsletter/RecipientImportField.php create mode 100755 code/Newsletter/SubscribeForm.php create mode 100755 code/Newsletter/TemplateList.php create mode 100755 code/Newsletter/Unsubscribe.php create mode 100755 code/Newsletter/UnsubscribedList.php create mode 100755 code/NewsletterAdmin.php create mode 100755 code/PageTypes/UserDefinedForm.php create mode 100755 code/ReportAdmin.php create mode 100644 code/SecurityAdmin.php create mode 100755 code/SideReport.php create mode 100755 code/StaticExporter.php create mode 100755 code/ThumbnailStripField.php create mode 100644 code/sitefeatures/Akismet.php create mode 100755 code/sitefeatures/PageComment.php create mode 100755 code/sitefeatures/PageCommentInterface.php create mode 100644 code/sitefeatures/SSAkismet.php create mode 100755 css/GenericDataAdmin.css create mode 100755 css/Image_iframe.css create mode 100755 css/LeftAndMain_printable.css create mode 100644 css/cms_left.css create mode 100644 css/cms_right.css create mode 100644 css/dialog.css create mode 100644 css/layout.css create mode 100644 css/typography.css create mode 100644 images/add.gif create mode 100755 images/alert-bad.gif create mode 100755 images/alert-good.gif create mode 100755 images/block.png create mode 100755 images/bullet_arrow_down.png create mode 100755 images/bullet_arrow_up.png create mode 100755 images/button-bg.gif create mode 100755 images/button-left.gif create mode 100755 images/button-right.gif create mode 100755 images/check.png create mode 100755 images/delete-small.gif create mode 100644 images/delete.gif create mode 100644 images/dialogs/alert.gif create mode 100644 images/dialogs/alert.png create mode 100644 images/down.gif create mode 100755 images/edit.gif create mode 100755 images/loading.gif create mode 100755 images/locked.gif create mode 100755 images/mainmenu/content.gif create mode 100755 images/mainmenu/content.png create mode 100755 images/mainmenu/emails.gif create mode 100755 images/mainmenu/files.gif create mode 100755 images/mainmenu/help.gif create mode 100755 images/mainmenu/help.png create mode 100755 images/mainmenu/logo-smallwhite.png create mode 100755 images/mainmenu/logo.gif create mode 100755 images/mainmenu/logo.png create mode 100755 images/mainmenu/members.gif create mode 100755 images/mainmenu/members.png create mode 100755 images/mainmenu/mgmt.png create mode 100755 images/mainmenu/reports.gif create mode 100755 images/mainmenu/top-bg.gif create mode 100755 images/network-save-bw.gif create mode 100644 images/network-save.gif create mode 100755 images/network-saveOLD.gif create mode 100755 images/pagination/record-export.png create mode 100755 images/pagination/record-first-g.png create mode 100755 images/pagination/record-first.png create mode 100755 images/pagination/record-last-g.png create mode 100755 images/pagination/record-last.png create mode 100755 images/pagination/record-next-g.png create mode 100755 images/pagination/record-next.png create mode 100755 images/pagination/record-prev-g.png create mode 100755 images/pagination/record-prev.png create mode 100755 images/pagination/record-print.png create mode 100755 images/panels/EditPage.png create mode 100755 images/panels/MySite.png create mode 100644 images/right.gif create mode 100755 images/show.png create mode 100644 images/sidetabs/advertisements.gif create mode 100644 images/sidetabs/advertisements_over.gif create mode 100644 images/sidetabs/associations.gif create mode 100644 images/sidetabs/associations_over.gif create mode 100644 images/sidetabs/categories.gif create mode 100644 images/sidetabs/categories_over.gif create mode 100755 images/sidetabs/comments.gif create mode 100755 images/sidetabs/comments_over.gif create mode 100755 images/sidetabs/reports.gif create mode 100755 images/sidetabs/reports_over.gif create mode 100755 images/sidetabs/search.gif create mode 100755 images/sidetabs/search_over.gif create mode 100755 images/sidetabs/sitemap.gif create mode 100755 images/sidetabs/sitemap_over.gif create mode 100755 images/sidetabs/tasklist.gif create mode 100755 images/sidetabs/tasklist_over.gif create mode 100755 images/sidetabs/template normal.psd create mode 100755 images/sidetabs/template over.psd create mode 100755 images/sidetabs/versions.gif create mode 100755 images/sidetabs/versions_over.gif create mode 100755 images/sidetabs/waitingon.gif create mode 100755 images/sidetabs/waitingon_over.gif create mode 100755 images/tables/checkbox.png create mode 100755 images/tables/thead.png create mode 100755 images/textures/ToolBar.png create mode 100755 images/textures/bottom.png create mode 100755 images/textures/obar-18.gif create mode 100755 images/textures/obar-light.png create mode 100755 images/textures/obar.gif create mode 100755 images/textures/seperator.png create mode 100755 images/tickbox-canttick.gif create mode 100755 images/tickbox-greyticked.gif create mode 100644 images/tickbox-ticked.gif create mode 100644 images/tickbox-unticked.gif create mode 100755 images/treeicons/book-closedfolder.gif create mode 100755 images/treeicons/book-file.gif create mode 100755 images/treeicons/book-openfolder.gif create mode 100755 images/treeicons/brokenlink-closedfolder.gif create mode 100755 images/treeicons/brokenlink-file.gif create mode 100755 images/treeicons/brokenlink-openfolder.gif create mode 100755 images/treeicons/draft-file.png create mode 100755 images/treeicons/draft-folder.png create mode 100755 images/treeicons/element-closedfolder.gif create mode 100755 images/treeicons/element-file.gif create mode 100755 images/treeicons/element-openfolder.gif create mode 100755 images/treeicons/folder-closedfolder.gif create mode 100755 images/treeicons/folder-file.gif create mode 100755 images/treeicons/folder-openfolder.gif create mode 100755 images/treeicons/home-file (1).png create mode 100755 images/treeicons/home-file.png create mode 100755 images/treeicons/multi-user.gif create mode 100755 images/treeicons/multi-user.png create mode 100755 images/treeicons/page-gold-closedfolder.gif create mode 100755 images/treeicons/page-gold-file.gif create mode 100755 images/treeicons/page-gold-openfolder.gif create mode 100755 images/treeicons/page-shortcut-file.gif create mode 100755 images/treeicons/page-shortcut-gold-file.gif create mode 100755 images/treeicons/preferences-closedfolder.gif create mode 100755 images/treeicons/preferences-file.gif create mode 100755 images/treeicons/preferences-openfolder.gif create mode 100755 images/treeicons/reports-file.png create mode 100755 images/treeicons/reports-foldericon.png create mode 100755 images/treeicons/reports-openfoldericon.png create mode 100755 images/treeicons/root.png create mode 100755 images/treeicons/sent-file.gif create mode 100755 images/treeicons/sent-folder.png create mode 100755 images/treeicons/task-file.gif create mode 100755 images/treeicons/user-file.gif create mode 100644 images/unlocked.gif create mode 100644 images/unlockedled.gif create mode 100755 images/workflow/note_edit.png create mode 100755 images/workflow/note_new.png create mode 100755 images/workflow/note_view.png create mode 100755 images/workflow/rubberstamp.png create mode 100755 javascript/AssetAdmin.js create mode 100755 javascript/BulkLoaderAdmin.js create mode 100755 javascript/CMSMain.js create mode 100755 javascript/CMSMain_left.js create mode 100755 javascript/CMSMain_right.js create mode 100755 javascript/CommentList.js create mode 100755 javascript/ForumAdmin.js create mode 100755 javascript/GenericDataAdmin_left.js create mode 100755 javascript/GenericDataAdmin_right.js create mode 100755 javascript/ImprintStats.js create mode 100644 javascript/LeftAndMain.js create mode 100755 javascript/LeftAndMain_left.js create mode 100755 javascript/LeftAndMain_right.js create mode 100755 javascript/MemberList.js create mode 100755 javascript/MemberTableField.js create mode 100755 javascript/MemberTableField_popup.js create mode 100755 javascript/NewsletterAdmin_left.js create mode 100755 javascript/NewsletterAdmin_right.js create mode 100755 javascript/NewsletterMemberList.js create mode 100755 javascript/Newsletter_UploadForm.js create mode 100755 javascript/PageCommentInterface.js create mode 100755 javascript/ReportAdmin_left.js create mode 100755 javascript/ReportAdmin_right.js create mode 100755 javascript/SecurityAdmin_left.js create mode 100755 javascript/SecurityAdmin_right.js create mode 100755 javascript/SideReports.js create mode 100755 javascript/SideTabs.js create mode 100755 javascript/TaskList.js create mode 100755 javascript/ThumbnailStripField.js create mode 100644 javascript/dialog.js create mode 100755 javascript/tinymce.template.js create mode 100644 silverstripe_version create mode 100755 templates/AssetAdmin_uploadiframe.ss create mode 100755 templates/BulkLoaderAdmin_iframe.ss create mode 100755 templates/BulkLoaderAdmin_preview.ss create mode 100755 templates/CMSMain_dialog.ss create mode 100755 templates/CMSMain_versions.ss create mode 100755 templates/CommentList.ss create mode 100644 templates/Dialog.ss create mode 100755 templates/Includes/AssetAdmin_left.ss create mode 100755 templates/Includes/AssetAdmin_right.ss create mode 100755 templates/Includes/AssetTableField.ss create mode 100755 templates/Includes/BulkLoaderAdmin_left.ss create mode 100755 templates/Includes/BulkLoaderAdmin_right.ss create mode 100755 templates/Includes/CMSLeft.ss create mode 100755 templates/Includes/CMSMain_left.ss create mode 100755 templates/Includes/CMSMain_right.ss create mode 100644 templates/Includes/CMSMain_rightbottom.ss create mode 100755 templates/Includes/CMSRight.ss create mode 100755 templates/Includes/Editor_toolbar.ss create mode 100755 templates/Includes/GenericDataAdmin_left.ss create mode 100755 templates/Includes/GenericDataAdmin_right.ss create mode 100644 templates/Includes/LeftAndMain_rightbottom.ss create mode 100755 templates/Includes/MemberList_PageControls.ss create mode 100755 templates/Includes/MemberList_Table.ss create mode 100755 templates/Includes/MemberTableField.ss create mode 100755 templates/Includes/NewsletterAdmin_BouncedList.ss create mode 100755 templates/Includes/NewsletterAdmin_SiteTree.ss create mode 100755 templates/Includes/NewsletterAdmin_UnsubscribedList.ss create mode 100755 templates/Includes/NewsletterAdmin_left.ss create mode 100755 templates/Includes/NewsletterAdmin_right.ss create mode 100755 templates/Includes/ReportAdmin_SiteTree.ss create mode 100755 templates/Includes/ReportAdmin_left.ss create mode 100755 templates/Includes/ReportAdmin_right.ss create mode 100644 templates/Includes/SecurityAdmin_left.ss create mode 100644 templates/Includes/SecurityAdmin_right.ss create mode 100644 templates/LeftAndMain.ss create mode 100755 templates/LeftAndMain_printable.ss create mode 100755 templates/MemberList.ss create mode 100755 templates/NewsletterList.ss create mode 100755 templates/Newsletter_RecipientImportField.ss create mode 100755 templates/Newsletter_RecipientImportField_Table.ss create mode 100755 templates/PageCommentInterface.ss create mode 100755 templates/PageCommentInterface_singlecomment.ss create mode 100755 templates/ReceivedFormSubmission.ss create mode 100755 templates/TaskList.ss create mode 100755 templates/ThumbnailStripField.ss create mode 100755 templates/WaitingOn.ss create mode 100755 templates/email/SubmittedFormEmail.ss create mode 100644 templates/email/ViewArchivedEmail.ss diff --git a/_config.php b/_config.php new file mode 100644 index 00000000..99e92ca9 --- /dev/null +++ b/_config.php @@ -0,0 +1,19 @@ + 'BatchProcess_Controller', + 'silverstripe/' => '->admin/', + 'cms/' => '->admin/', + 'admin/security/$Action/$ID/$OtherID' => 'SecurityAdmin', + 'admin/help/$Action/$ID' => 'CMSHelp', + 'admin/newsletter/$Action/$ID' => 'NewsletterAdmin', + 'admin/reports/$Action/$ID' => 'ReportAdmin', + 'admin/assets/$Action/$ID' => 'AssetAdmin', + 'admin/ReportField/$Action/$ID/$Type/$OtherID' => 'ReportField_Controller', + 'admin/bulkload/$Action/$ID/$OtherID' => 'BulkLoaderAdmin', + 'admin/$Action/$ID/$OtherID' => 'CMSMain', + 'unsubscribe/$Email/$MailingList' => 'Unsubscribe_Controller', + 'membercontrolpanel/$Email' => 'MemberControlPanel' +)); + +?> diff --git a/code/AssetAdmin.php b/code/AssetAdmin.php new file mode 100755 index 00000000..7e866aaf --- /dev/null +++ b/code/AssetAdmin.php @@ -0,0 +1,660 @@ +currentPageID(); + } + + /** + * Return fake-ID "root" if no ID is found (needed to upload files into the root-folder) + */ + public function currentPageID() { + if(isset($_REQUEST['ID']) && is_numeric($_REQUEST['ID'])) { + return $_REQUEST['ID']; + } elseif (is_numeric($this->urlParams['ID'])) { + return $this->urlParams['ID']; + } elseif(is_numeric(Session::get("{$this->class}.currentPage"))) { + return Session::get("{$this->class}.currentPage"); + } else { + return "root"; + } + } + + /** + * Set up the controller, in particular, re-sync the File database with the assets folder./ + */ + function init() { + parent::init(); + + // needed for MemberTableField (Requirements not determined before Ajax-Call) + Requirements::javascript("sapphire/javascript/ComplexTableField.js"); + Requirements::css("jsparty/greybox/greybox.css"); + Requirements::css("sapphire/css/ComplexTableField.css"); + + Requirements::javascript("cms/javascript/AssetAdmin.js"); + Requirements::javascript("cms/javascript/AssetAdmin_left.js"); + Requirements::javascript("cms/javascript/AssetAdmin_right.js"); + + // Requirements::javascript('sapphire/javascript/TableListField.js'); + + // Include the right JS] + // Hayden: This didn't appear to be used at all + /*$fileList = new FileList("Form_EditForm_Files", null); + $fileList->setClick_AjaxLoad('admin/assets/getfile/', 'Form_SubForm'); + $fileList->FieldHolder();*/ + + Requirements::javascript("jsparty/greybox/AmiJS.js"); + Requirements::javascript("jsparty/greybox/greybox.js"); + Requirements::css("jsparty/greybox/greybox.css"); + } + + /** + * Display the upload form. Returns an iframe tag that will show admin/assets/uploadiframe. + */ + function getUploadIframe() { + return << + +HTML; + } + + function index() { + File::sync(); + return array(); + } + + /** + * Show the content of the upload iframe. The form is specified by a template. + */ + function uploadiframe() { + Requirements::clear(); + + Requirements::javascript("jsparty/prototype.js"); + Requirements::javascript("jsparty/loader.js"); + Requirements::javascript("jsparty/behaviour.js"); + Requirements::javascript("jsparty/prototype_improvements.js"); + Requirements::javascript("jsparty/layout_helpers.js"); + Requirements::javascript("cms/javascript/LeftAndMain.js"); + Requirements::javascript("jsparty/multifile/multifile.js"); + Requirements::css("jsparty/multifile/multifile.css"); + Requirements::css("cms/css/typography.css"); + Requirements::css("cms/css/layout.css"); + Requirements::css("cms/css/cms_left.css"); + Requirements::css("cms/css/cms_right.css"); + + if(isset($data['ID']) && $data['ID'] != 'root') $folder = DataObject::get_by_id("Folder", $data['ID']); + else $folder = singleton('Folder'); + + $canUpload = $folder->userCanEdit(); + + return array( 'CanUpload' => $canUpload ); + } + + /** + * Return the form object shown in the uploadiframe. + */ + function UploadForm() { + + return new Form($this,'UploadForm', new FieldSet( + new HiddenField("ID", "", $this->currentPageID()), + // needed because the button-action is triggered outside the iframe + new HiddenField("action_doUpload", "", "1"), + new FileField("Files[0]" , "Choose file "), + new LiteralField('UploadButton'," + + "), + new LiteralField('MultifileCode'," +

Files ready to upload:

+
+ + ") + ), new FieldSet( + )); + + } + + /** + * This method processes the results of the UploadForm. + * It will save the uploaded files to /assets/ and create new File objects as required. + */ + function doUpload($data, $form) { + foreach($data['Files'] as $param => $files) { + foreach($files as $key => $value) { + $processedFiles[$key][$param] = $value; + } + } + + if($data['ID'] && $data['ID'] != 'root') $folder = DataObject::get_by_id("Folder", $data['ID']); + else $folder = singleton('Folder'); + + $warnFiles = array(); + $fileSizeWarnings = ''; + + foreach($processedFiles as $file) { + if($file['tmp_name']) { + // check that the file can be uploaded and isn't too large + + $extensionIndex = strripos( $file['name'], '.' ); + $extension = strtolower( substr( $file['name'], $extensionIndex + 1 ) ); + + if( $extensionIndex !== FALSE ) + list( $maxSize, $warnSize ) = File::getMaxFileSize( $extension ); + else + list( $maxSize, $warnSize ) = File::getMaxFileSize(); + + // check that the file is not too large or that the current user is an administrator + if( $this->can('AdminCMS') || ( File::allowedFileType( $extension ) && (!isset($maxsize) || $file['size'] < $maxSize))) + $newFiles[] = $folder->addUploadToFolder($file); + elseif( !File::allowedFileType( $extension ) ) { + $fileSizeWarnings .= "alert( 'Only administrators can upload $extension files.' );"; + } else { + if( $file['size'] > 1048576 ) + $fileSize = "" . ceil( $file['size'] / 1048576 ) . "MB"; + elseif( $file['size'] > 1024 ) + $fileSize = "" . ceil( $file['size'] / 1024 ) . "KB"; + else + $fileSize = "" . ceil( $file['size'] ) . "B"; + + + $fileSizeWarnings .= "alert( '\\'" . $file['name'] . "\\' is too large ($fileSize). Files of this type cannot be larger than $warnSize ' );"; + } + } + } + + if($newFiles) { + $numFiles = sizeof($newFiles); + $statusMessage = "Uploaded $numFiles files"; + $status = "good"; + } else { + $statusMessage = "There was nothing to upload"; + $status = ""; + } + echo << + var form = parent.document.getElementById('Form_EditForm'); + form.getPageFromServer(form.elements.ID.value); + parent.statusMessage("{$statusMessage}","{$status}"); + $fileSizeWarnings + parent.document.getElementById('sitetree').getTreeNodeByIdx( "{$folder->ID}" ).getElementsByTagName('a')[0].className += ' contents'; + +HTML; + } + + /** + * Needs to be overridden to make sure an ID with value "0" is still valid (rootfolder) + */ + + + /** + * Return the form that displays the details of a folder, including a file list and fields for editing the folder name. + */ + function getEditForm($id) { + if($id && $id != "root") { + $record = DataObject::get_by_id("File", $id); + } else { + $record = singleton("Folder"); + } + + $fileList = new AssetTableField( + $this, + "Files", + "File", + array("Title" => "Title", "LinkedURL" => "Filename"), + "" + ); + $fileList->setFolder($record); + $fileList->setPopupCaption("View/Edit Asset"); + + if($record) { + $nameField = ($id != "root") ? new TextField("Name") : new HiddenField("Name"); + $fields = new FieldSet( + new HiddenField("Title"), + $nameField, + new TabSet("Root", + new Tab("Files", + $fileList + ), + new Tab("Details", + new ReadonlyField("URL"), + new ReadonlyField("ClassName", "Type"), + new ReadonlyField("Created", "First Uploaded"), + new ReadonlyField("LastEdited", "Last Updated") + ), + new Tab("Upload", + new LiteralField("UploadIframe", + $this->getUploadIframe() + ) + ) + ), + new HiddenField("ID") + ); + + $actions = new FieldSet(); + + if( $record->userCanEdit() ) { + $actions = new FieldSet( + new FormAction('deletemarked',"Delete files"), + new FormAction('movemarked',"Move files..."), + new FormAction('save',"Save") + ); + } + + $form = new Form($this, "EditForm", $fields, $actions); + if($record->ID) { + $form->loadDataFrom($record); + } else { + $form->loadDataFrom(array( + "ID" => "root", + "URL" => Director::absoluteBaseURL() . 'assets/', + )); + } + + // @todo: These workflow features aren't really appropriate for all projects + if( Member::currentUser()->_isAdmin() && project() == 'mot' ) { + $fields->addFieldsToTab( 'Root.Workflow', new DropdownField("Owner", "Owner", Member::map() ) ); + $fields->addFieldsToTab( 'Root.Workflow', new TreeMultiselectField("CanUse", "Content usable by") ); + $fields->addFieldsToTab( 'Root.Workflow', new TreeMultiselectField("CanEdit", "Content modifiable by") ); + } + + if( !$record->userCanEdit() ) + $form->makeReadonly(); + + return $form; + + } + } + + /** + * Returns the form used to specify options for the "move marked" action. + */ + public function MoveMarkedOptionsForm() { + $folderDropdown = new TreeDropdownField("DestFolderID", "Move files to", "Folder"); + $folderDropdown->setFilterFunction(create_function('$obj', 'return $obj->class == "Folder";')); + + return new CMSActionOptionsForm($this, "MoveMarkedOptionsForm", new FieldSet( + new HiddenField("ID"), + new HiddenField("FileIDs"), + $folderDropdown + ), + new FieldSet( + new FormAction("movemarked", "Move marked files") + )); + } + + /** + * Perform the "move marked" action. + * Called by ajax, with a JavaScript return. + */ + public function movemarked() { + if($_REQUEST['DestFolderID'] && is_numeric($_REQUEST['DestFolderID'])) { + $destFolderID = $_REQUEST['DestFolderID']; + $fileList = "'" . ereg_replace(' *, *',"','",trim(addslashes($_REQUEST['FileIDs']))) . "'"; + $numFiles = 0; + + if($fileList != "''") { + $files = DataObject::get("File", "`File`.ID IN ($fileList)"); + if($files) { + foreach($files as $file) { + $file->ParentID = $destFolderID; + $file->write(); + $numFiles++; + } + } else { + user_error("No files in $fileList could be found!", E_USER_ERROR); + } + } + + echo <<