Having used Umbraco for quite some time now I can say there is a need for a simple file manager to upload assets for use with css stylesheets, downloads, etc.
Like most Umbraco developers, I create an image folder on the root of the website to store all my css images. However, I have to use a separate ftp utility to manage these assets. It would make the development experience sooooo much better to be able to do the file management right in the Umbraco UI.
Is this something someone is working on? If not, I think I may pioneer a new "section" for Umbraco for file management.
It was recently brought up in another thread. I too would love to have a full-blown file manager, and would be willing to assist in the development of such a package. The tree should be relatively easy to implement to display/add/delete folders. The main panel could show all files and actions, and provide a means to upload/download files, and perhaps edit as well.
If we built it right, we could allow it to be extended with a variety of editors by extension. (code, text, image)
I would love to collaborate on this, and perhaps ben_a from the other thread has input? Contact me: casey-at-bestcasetech-dot-com
The media section works great for adding images and files when dealing with content. However, when you are dealing with website assets such as website images used in css and templates the media section doesn't work very well. It is usually better to use a physical "images" folder for something like this. It would just make development a bit easier to get to those files without the need of a ftp client. Not to mention, not all companies, such as mine, allow developer access to FTP as it violates their security protocols. At that point, I have to use RDP and move files back and forth which is a royal pain in the butt.
Casey,
Let me look into the tree functionality mentioned on the other forum and see what I can find. It seems like it would be rather easy to implement. I haven't extended Umbraco before so it might take some time for me to wrap my head around it. Good ideas about UI placements. Collaboration would be good...I just have to find some time to do it. LOL.
Rick, I have no idea why they would think RDP is not against security policy and FTP is.
IMHO, development should really be done on your dev machine and then you can deploy your changes when you are done. You can map your local drives in your remote server by sharing them through RPD, then you can use a few robocopy commands in a batch script to copy all of your changes over.
That way, you can also use version control and have a safe environment in which to fail without people seeing it on a live site.
I don't quite understand all the reasoning behind locking down ftp and using RDP. I believe there is tighter control over RDP access and no need for firewall changes. However, my situation is unique in that I can actually get to the files via RDP. Some companies don't even allow that. I agree that development should be taking place on a dev machine but alas, we don't all work in standards compliant environments where this is the situation. The problem still presents itself when you have to upload those changes to the production site. How do you do that? An ftp client, RDP, or right in the Umbraco interface?
Another thought, not everyone is using a Windows machine to develop for Umbraco. I use a Mac most of the time and only compile .net code on my windows machines when I need controls and extended functionality. With Umbraco I can do most of my development in a live test environment right in the browser...which means I can develop anywhere in the world with or without my laptop. To me, that is invaluable and what makes Umbraco something rather unique in the Microsoft Asp.net world.
It always is interesting to me that developers in the Umbraco community are "put-off" that users would ever want functionality that is already available in other competitive CMS solutions.
In fact, for deployments I have a simple batch file (about 20 lines) that contains the robocopy statements that I mentioned earlier.
And, not to be an ass about this, but I can do all of my development on any machine (PC or mac) that is on- or offline from anywhere in the world as long as I have access to my source control client and I never put a live site at risk. Which is invaluable to me as well.
I don't really know a competitive CMS solution that lets you manage your files the way that you are suggesting. I suppose it works through some kind of java to FTP solution? What good does that do then? It's still FTP..
Again, not to be an ass about it, but it's not the Umbraco community that would object to this way of doing things, it's developers who know better than that. :-) It's fairly trivial nowadays to set-up a source control system and a deployment script. Yes, it will take you some time, but you will definitely benefit from it in the long run.
You are assuming that my development sites are publicly accessible. In which they are not. I typically mirror my environments when developing. Again, you also are assuming that I don't use source control such as Subversion or batch files to deploy changes. These are all great procedures when working on large continuous sites. This still doesn't solve the simple website scenario that doesn't necessarily need something as complicated as source control and deployment scripts.
You don't need java or ftp to accomplish uploads/deletes/adds, its all right there in the asp.net framework. I could expound on a number of other CMS systems that use the .net framework's ability to modify system files but what is the use. We have gotten off topic on this thread.
Not trying to be an ass about it, but we could argue endlessly about development practices and the ever moving target of "standards" and still not answer my initial question. I believe there is value in developing an ability to upload/modify files in the Umbraco UI. I just wanted to know if anyone else was developing something like this or if there was a package already out there. The thread wasn't started to argue semantics of web development.
I, for one, love this off-topic discussion, if you don't mind! Could you explain how this file management is done elsewhere? I'm genuinely trying to learn here. I think that anything beyond me being able to drag & drop a bunch of files in folders is fairly pointless. If I still have to seek out a directory manually to upload some files then I might as well do it in Umbraco's media section with the multi-file uploader extension.
Yes, I did make some assumption, let me tell you that each and every project that I start, is immediately checked into source control (in my case Git or Mercurial, because they are totally painless). Even if I know that I'll only be spending a day on it now, I create a repository and check in my tiny little project (which takes me all of 10 minutes). The time spent on this helps me to create an automatic back-up of my project and allows me to hand over whatever future development might be necessary to someone else.
Just saying that every tiny little project is worth it to put under source control and set up a small deployment script.
Now, back to the subject matter, how do you envision managing live server development? Is there a good description of the Joomla version available that I can look at to see if a similar option exists for Umbraco?
I like Rick's Idea, in that it caters to the non-developer audience, as well as the fish out of water developer. I think it's great to have all my files in source control, but occasionally I'm using my dad's computer (or internet cafe) and want to change something on an umbraco webite :-)
Well, if this is going to be a file browser that allows you to go through the file system and give you single file uploads then it has no added value at all, with maybe the exception of being able to upload image files into a single folder instead of the /media/xxxx/img.jpg structure. You can already edit your CSS files, your JS files, and the master pages.
Right. So you can edit CSS, JS, and Master Pages in the UI but you cannot upload the supporting images, documents, flash files, etc to the file structure. That was my point in the first place! Half of the file management functionality is in the Umbraco UI already. I wouldn't imagine that any of these existing functions would provide useful to developers that use source control and use deployment scripts on all their projects. After all, why would you put a "live site at risk" and edit any one of these files in the Umbraco UI. However, those functions are there incase you need them. Not to mention, it really seems like the Umbraco interface has gone a long way to encourage development right in the UI. Keeping with that mindset, it's not to far fetched to suggest a simple file manager.
Being able to upload images would be a start. But why limit it to images? A developer should have access to the whole file structure.
hummm... now if we could hook source control into the online file editing process... :) (have been thinking along the lines of a custom section providing a view to an existing web based check-in / roll-back mechanism - can anyone see something like this working ?)
I agree, for a lot of my sites now there is a separate "assets" folder (containing 3 sub-folders; "images", "css", "js") ... this isn't something I came up with, but it used by a lot of the creative agencies that I work with. So far there is no access to this with the Umbraco back-office, which has been fine (as we have FTP access) ... but it would be really nice to access everything via the back-office.
@Rick, if you are looking at developing something for this, feel free to take a look at my User Control Editor source-code for a basis, it might be useful?
I like the idea of online source control. However, I don't know of any companies that provide a full web version of their source control software. I know Subversion can provide some information via Webservices, but as of this moment I believe you need the client to see previous versions and to do rollback. The Umbraco "section" would have to serve as the client in this case. Without a comprehesive API from the online source control website it would be a massive undertaking. I'm not sure how you would hook this up to a system file manager.
I will look at your code in more depth. But from first
glance it seems like it will give a nice basis to see how your are
managing the calls to Umbraco UI and system file structure. I wonder
would it be more beneficial to add a tree node to the developer section
or create a custom section with its own tree?
It would make sense
to be placed in the developer section but it might also be nice to lock
down security as a section as you might not want certain developers
mucking with the system files. Thoughts?
Rick, I think it would be better suited as its own separate section, main reason being restricting user access to it.
I do think for simple a filesystem tree (a couple of sub-folders) it would be okay for the 'developer' section, but anything more complex would become a nightmare!
Daniel this is an amazing package!! This is exactly what I was looking for and way beyond what I was initially invisioning. I ended up getting bogged down in a big project at work for the last couple months and didn't have a chance to get back to this. Time has freed up a bit. Let me know if you need help developing.
Image/File Manager Anyone?
Having used Umbraco for quite some time now I can say there is a need for a simple file manager to upload assets for use with css stylesheets, downloads, etc.
Like most Umbraco developers, I create an image folder on the root of the website to store all my css images. However, I have to use a separate ftp utility to manage these assets. It would make the development experience sooooo much better to be able to do the file management right in the Umbraco UI.
Is this something someone is working on? If not, I think I may pioneer a new "section" for Umbraco for file management.
Have you looked at the media section of the Umbraco backend?
Hi Rick,
It was recently brought up in another thread. I too would love to have a full-blown file manager, and would be willing to assist in the development of such a package. The tree should be relatively easy to implement to display/add/delete folders. The main panel could show all files and actions, and provide a means to upload/download files, and perhaps edit as well.
If we built it right, we could allow it to be extended with a variety of editors by extension. (code, text, image)
I would love to collaborate on this, and perhaps ben_a from the other thread has input? Contact me: casey-at-bestcasetech-dot-com
Sebastien,
The media section works great for adding images and files when dealing with content. However, when you are dealing with website assets such as website images used in css and templates the media section doesn't work very well. It is usually better to use a physical "images" folder for something like this. It would just make development a bit easier to get to those files without the need of a ftp client. Not to mention, not all companies, such as mine, allow developer access to FTP as it violates their security protocols. At that point, I have to use RDP and move files back and forth which is a royal pain in the butt.
Casey,
Let me look into the tree functionality mentioned on the other forum and see what I can find. It seems like it would be rather easy to implement. I haven't extended Umbraco before so it might take some time for me to wrap my head around it. Good ideas about UI placements. Collaboration would be good...I just have to find some time to do it. LOL.
Rick, I have no idea why they would think RDP is not against security policy and FTP is.
IMHO, development should really be done on your dev machine and then you can deploy your changes when you are done. You can map your local drives in your remote server by sharing them through RPD, then you can use a few robocopy commands in a batch script to copy all of your changes over.
That way, you can also use version control and have a safe environment in which to fail without people seeing it on a live site.
Sebastiaan,
I don't quite understand all the reasoning behind locking down ftp and using RDP. I believe there is tighter control over RDP access and no need for firewall changes. However, my situation is unique in that I can actually get to the files via RDP. Some companies don't even allow that. I agree that development should be taking place on a dev machine but alas, we don't all work in standards compliant environments where this is the situation. The problem still presents itself when you have to upload those changes to the production site. How do you do that? An ftp client, RDP, or right in the Umbraco interface?
Another thought, not everyone is using a Windows machine to develop for Umbraco. I use a Mac most of the time and only compile .net code on my windows machines when I need controls and extended functionality. With Umbraco I can do most of my development in a live test environment right in the browser...which means I can develop anywhere in the world with or without my laptop. To me, that is invaluable and what makes Umbraco something rather unique in the Microsoft Asp.net world.
It always is interesting to me that developers in the Umbraco community are "put-off" that users would ever want functionality that is already available in other competitive CMS solutions.
In fact, for deployments I have a simple batch file (about 20 lines) that contains the robocopy statements that I mentioned earlier.
And, not to be an ass about this, but I can do all of my development on any machine (PC or mac) that is on- or offline from anywhere in the world as long as I have access to my source control client and I never put a live site at risk. Which is invaluable to me as well.
I don't really know a competitive CMS solution that lets you manage your files the way that you are suggesting. I suppose it works through some kind of java to FTP solution? What good does that do then? It's still FTP..
Again, not to be an ass about it, but it's not the Umbraco community that would object to this way of doing things, it's developers who know better than that. :-) It's fairly trivial nowadays to set-up a source control system and a deployment script. Yes, it will take you some time, but you will definitely benefit from it in the long run.
Sebastiaan,
You are assuming that my development sites are publicly accessible. In which they are not. I typically mirror my environments when developing. Again, you also are assuming that I don't use source control such as Subversion or batch files to deploy changes. These are all great procedures when working on large continuous sites. This still doesn't solve the simple website scenario that doesn't necessarily need something as complicated as source control and deployment scripts.
You don't need java or ftp to accomplish uploads/deletes/adds, its all right there in the asp.net framework. I could expound on a number of other CMS systems that use the .net framework's ability to modify system files but what is the use. We have gotten off topic on this thread.
Not trying to be an ass about it, but we could argue endlessly about development practices and the ever moving target of "standards" and still not answer my initial question. I believe there is value in developing an ability to upload/modify files in the Umbraco UI. I just wanted to know if anyone else was developing something like this or if there was a package already out there. The thread wasn't started to argue semantics of web development.
I, for one, love this off-topic discussion, if you don't mind! Could you explain how this file management is done elsewhere? I'm genuinely trying to learn here. I think that anything beyond me being able to drag & drop a bunch of files in folders is fairly pointless. If I still have to seek out a directory manually to upload some files then I might as well do it in Umbraco's media section with the multi-file uploader extension.
Yes, I did make some assumption, let me tell you that each and every project that I start, is immediately checked into source control (in my case Git or Mercurial, because they are totally painless). Even if I know that I'll only be spending a day on it now, I create a repository and check in my tiny little project (which takes me all of 10 minutes). The time spent on this helps me to create an automatic back-up of my project and allows me to hand over whatever future development might be necessary to someone else.
Just saying that every tiny little project is worth it to put under source control and set up a small deployment script.
Now, back to the subject matter, how do you envision managing live server development? Is there a good description of the Joomla version available that I can look at to see if a similar option exists for Umbraco?
I like Rick's Idea, in that it caters to the non-developer audience, as well as the fish out of water developer. I think it's great to have all my files in source control, but occasionally I'm using my dad's computer (or internet cafe) and want to change something on an umbraco webite :-)
P.S. don't think I'd use it myself tho :-)
Well, if this is going to be a file browser that allows you to go through the file system and give you single file uploads then it has no added value at all, with maybe the exception of being able to upload image files into a single folder instead of the /media/xxxx/img.jpg structure. You can already edit your CSS files, your JS files, and the master pages.
So, would you be happy if there was an upload field that would allow you to upload files into say the /images folder? Or maybe a configurable few folders? Or even something like this, which Casey refers to in his other thread: http://demos.telerik.com/aspnet-ajax/fileexplorer/examples/default/defaultcs.aspx?
Right. So you can edit CSS, JS, and Master Pages in the UI but you cannot upload the supporting images, documents, flash files, etc to the file structure. That was my point in the first place! Half of the file management functionality is in the Umbraco UI already. I wouldn't imagine that any of these existing functions would provide useful to developers that use source control and use deployment scripts on all their projects. After all, why would you put a "live site at risk" and edit any one of these files in the Umbraco UI. However, those functions are there incase you need them. Not to mention, it really seems like the Umbraco interface has gone a long way to encourage development right in the UI. Keeping with that mindset, it's not to far fetched to suggest a simple file manager.
Being able to upload images would be a start. But why limit it to images? A developer should have access to the whole file structure.
hummm... now if we could hook source control into the online file editing process... :) (have been thinking along the lines of a custom section providing a view to an existing web based check-in / roll-back mechanism - can anyone see something like this working ?)
I agree, for a lot of my sites now there is a separate "assets" folder (containing 3 sub-folders; "images", "css", "js") ... this isn't something I came up with, but it used by a lot of the creative agencies that I work with. So far there is no access to this with the Umbraco back-office, which has been fine (as we have FTP access) ... but it would be really nice to access everything via the back-office.
@Rick, if you are looking at developing something for this, feel free to take a look at my User Control Editor source-code for a basis, it might be useful?
http://our.umbraco.org/projects/user-control-file-editor
I'd also be interested in helping out with any dev... but to be honest, I reckon it's a one-man dev job! ;-)
Good luck, Lee.
Hendy,
I like the idea of online source control. However, I don't know of any companies that provide a full web version of their source control software. I know Subversion can provide some information via Webservices, but as of this moment I believe you need the client to see previous versions and to do rollback. The Umbraco "section" would have to serve as the client in this case. Without a comprehesive API from the online source control website it would be a massive undertaking. I'm not sure how you would hook this up to a system file manager.
Lee,
I will look at your code in more depth. But from first glance it seems like it will give a nice basis to see how your are managing the calls to Umbraco UI and system file structure. I wonder would it be more beneficial to add a tree node to the developer section or create a custom section with its own tree?
It would make sense to be placed in the developer section but it might also be nice to lock down security as a section as you might not want certain developers mucking with the system files. Thoughts?
Rick, I think it would be better suited as its own separate section, main reason being restricting user access to it.
I do think for simple a filesystem tree (a couple of sub-folders) it would be okay for the 'developer' section, but anything more complex would become a nightmare!
I'd guess the ability to configure which folders it exposes would be good for some people.
I have released a file manager (custom section and trees and editors) for Umbraco 4.0.x http://our.umbraco.org/projects/backoffice-extensions/file-manager
Features:
- Text editor with syntax highlighting from edit_area - Media player using flowplayer - Image viewer - File uploading using Uploadify - Folder creating and browsing - Archive browsing - Integrated Recycle bin (empty/restore) - Folder/File delete to Recycle bin! - Folder/File media import - User/Group permissions (via config file) - Section permission linking to folders, files, and extensions (via config file) - Custom user root path (via config or Users section[mssql only]) - Umbraco trees integration (scripts, templates, media, python, xslt) - Fully configurable via fileManager.config (permissions, editors, etc..)
Daniel this is an amazing package!! This is exactly what I was looking for and way beyond what I was initially invisioning. I ended up getting bogged down in a big project at work for the last couple months and didn't have a chance to get back to this. Time has freed up a bit. Let me know if you need help developing.
Thanks for the kudos and karma (if given).
I still need to make the package 4.5 compatible; need to find the time to do so.
Shoot me a message if you have any questions. If I have time to continue development, we'll see if I need some assistance.. thanks for the offer.
is working on a reply...