Skip to content
Snippets Groups Projects
Commit 111a764b authored by Tim Steiner's avatar Tim Steiner
Browse files

Adding IMCE modules

git-svn-id: file:///tmp/wdn_thm_drupal/branches/drupal-7.x@80 20a16fea-79d4-4915-8869-1ea9d5ebf173
parent 8c04741c
No related branches found
No related tags found
No related merge requests found
Showing
with 883 additions and 0 deletions
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave,
Cambridge, MA 02139, USA. Everyone is permitted to copy and distribute
verbatim copies of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your freedom to
share and change it. By contrast, the GNU General Public License is
intended to guarantee your freedom to share and change free software--to
make sure the software is free for all its users. This General Public License
applies to most of the Free Software Foundation's software and to any other
program whose authors commit to using it. (Some other Free Software
Foundation software is covered by the GNU Library General Public License
instead.) You can apply it to your programs, too.
When we speak of free software, we are referring to freedom, not price. Our
General Public Licenses are designed to make sure that you have the
freedom to distribute copies of free software (and charge for this service if
you wish), that you receive source code or can get it if you want it, that you
can change the software or use pieces of it in new free programs; and that
you know you can do these things.
To protect your rights, we need to make restrictions that forbid anyone to
deny you these rights or to ask you to surrender the rights. These restrictions
translate to certain responsibilities for you if you distribute copies of the
software, or if you modify it.
For example, if you distribute copies of such a program, whether gratis or for
a fee, you must give the recipients all the rights that you have. You must make
sure that they, too, receive or can get the source code. And you must show
them these terms so they know their rights.
We protect your rights with two steps: (1) copyright the software, and (2)
offer you this license which gives you legal permission to copy, distribute
and/or modify the software.
Also, for each author's protection and ours, we want to make certain that
everyone understands that there is no warranty for this free software. If the
software is modified by someone else and passed on, we want its recipients
to know that what they have is not the original, so that any problems
introduced by others will not reflect on the original authors' reputations.
Finally, any free program is threatened constantly by software patents. We
wish to avoid the danger that redistributors of a free program will individually
obtain patent licenses, in effect making the program proprietary. To prevent
this, we have made it clear that any patent must be licensed for everyone's
free use or not licensed at all.
The precise terms and conditions for copying, distribution and modification
follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
MODIFICATION
0. This License applies to any program or other work which contains a notice
placed by the copyright holder saying it may be distributed under the terms
of this General Public License. The "Program", below, refers to any such
program or work, and a "work based on the Program" means either the
Program or any derivative work under copyright law: that is to say, a work
containing the Program or a portion of it, either verbatim or with
modifications and/or translated into another language. (Hereinafter, translation
is included without limitation in the term "modification".) Each licensee is
addressed as "you".
Activities other than copying, distribution and modification are not covered
by this License; they are outside its scope. The act of running the Program is
not restricted, and the output from the Program is covered only if its contents
constitute a work based on the Program (independent of having been made
by running the Program). Whether that is true depends on what the Program
does.
1. You may copy and distribute verbatim copies of the Program's source
code as you receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice and
disclaimer of warranty; keep intact all the notices that refer to this License
and to the absence of any warranty; and give any other recipients of the
Program a copy of this License along with the Program.
You may charge a fee for the physical act of transferring a copy, and you
may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion of it,
thus forming a work based on the Program, and copy and distribute such
modifications or work under the terms of Section 1 above, provided that you
also meet all of these conditions:
a) You must cause the modified files to carry prominent notices stating that
you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in whole or in
part contains or is derived from the Program or any part thereof, to be
licensed as a whole at no charge to all third parties under the terms of this
License.
c) If the modified program normally reads commands interactively when run,
you must cause it, when started running for such interactive use in the most
ordinary way, to print or display an announcement including an appropriate
copyright notice and a notice that there is no warranty (or else, saying that
you provide a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this License.
(Exception: if the Program itself is interactive but does not normally print such
an announcement, your work based on the Program is not required to print
an announcement.)
These requirements apply to the modified work as a whole. If identifiable
sections of that work are not derived from the Program, and can be
reasonably considered independent and separate works in themselves, then
this License, and its terms, do not apply to those sections when you distribute
them as separate works. But when you distribute the same sections as part
of a whole which is a work based on the Program, the distribution of the
whole must be on the terms of this License, whose permissions for other
licensees extend to the entire whole, and thus to each and every part
regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest your rights to
work written entirely by you; rather, the intent is to exercise the right to
control the distribution of derivative or collective works based on the
Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of a
storage or distribution medium does not bring the other work under the scope
of this License.
3. You may copy and distribute the Program (or a work based on it, under
Section 2) in object code or executable form under the terms of Sections 1
and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable source
code, which must be distributed under the terms of Sections 1 and 2 above
on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three years, to give
any third party, for a charge no more than your cost of physically performing
source distribution, a complete machine-readable copy of the corresponding
source code, to be distributed under the terms of Sections 1 and 2 above on
a medium customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer to distribute
corresponding source code. (This alternative is allowed only for
noncommercial distribution and only if you received the program in object
code or executable form with such an offer, in accord with Subsection b
above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source code
means all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation and
installation of the executable. However, as a special exception, the source
code distributed need not include anything that is normally distributed (in
either source or binary form) with the major components (compiler, kernel,
and so on) of the operating system on which the executable runs, unless that
component itself accompanies the executable.
If distribution of executable or object code is made by offering access to
copy from a designated place, then offering equivalent access to copy the
source code from the same place counts as distribution of the source code,
even though third parties are not compelled to copy the source along with the
object code.
4. You may not copy, modify, sublicense, or distribute the Program except as
expressly provided under this License. Any attempt otherwise to copy,
modify, sublicense or distribute the Program is void, and will automatically
terminate your rights under this License. However, parties who have received
copies, or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
5. You are not required to accept this License, since you have not signed it.
However, nothing else grants you permission to modify or distribute the
Program or its derivative works. These actions are prohibited by law if you
do not accept this License. Therefore, by modifying or distributing the
Program (or any work based on the Program), you indicate your acceptance
of this License to do so, and all its terms and conditions for copying,
distributing or modifying the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the original
licensor to copy, distribute or modify the Program subject to these terms and
conditions. You may not impose any further restrictions on the recipients'
exercise of the rights granted herein. You are not responsible for enforcing
compliance by third parties to this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues), conditions
are imposed on you (whether by court order, agreement or otherwise) that
contradict the conditions of this License, they do not excuse you from the
conditions of this License. If you cannot distribute so as to satisfy
simultaneously your obligations under this License and any other pertinent
obligations, then as a consequence you may not distribute the Program at all.
For example, if a patent license would not permit royalty-free redistribution
of the Program by all those who receive copies directly or indirectly through
you, then the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply and
the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any patents or
other property right claims or to contest validity of any such claims; this
section has the sole purpose of protecting the integrity of the free software
distribution system, which is implemented by public license practices. Many
people have made generous contributions to the wide range of software
distributed through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing to
distribute software through any other system and a licensee cannot impose
that choice.
This section is intended to make thoroughly clear what is believed to be a
consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in certain
countries either by patents or by copyrighted interfaces, the original copyright
holder who places the Program under this License may add an explicit
geographical distribution limitation excluding those countries, so that
distribution is permitted only in or among countries not thus excluded. In such
case, this License incorporates the limitation as if written in the body of this
License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will be
similar in spirit to the present version, but may differ in detail to address new
problems or concerns.
Each version is given a distinguishing version number. If the Program specifies
a version number of this License which applies to it and "any later version",
you have the option of following the terms and conditions either of that
version or of any later version published by the Free Software Foundation. If
the Program does not specify a version number of this License, you may
choose any version ever published by the Free Software Foundation.
10. If you wish to incorporate parts of the Program into other free programs
whose distribution conditions are different, write to the author to ask for
permission. For software which is copyrighted by the Free Software
Foundation, write to the Free Software Foundation; we sometimes make
exceptions for this. Our decision will be guided by the two goals of
preserving the free status of all derivatives of our free software and of
promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE,
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT
PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
NECESSARY SERVICING, REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR
AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR
ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
ARISING OUT OF THE USE OR INABILITY TO USE THE
PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA
OR DATA BEING RENDERED INACCURATE OR LOSSES
SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN
IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF
THE POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
// $Id: README.txt,v 1.13 2010/03/17 21:36:38 ufku Exp $
IMCE
http://drupal.org/project/imce
====================================
DESCRIPTION
-----------
IMCE is an image/file uploader and browser that supports personal directories and quota.
IMCE can easily be integrated into any WYSIWYG editor or any web application that needs a file browser.
See INTEGRATION METHODS for more information.
FEATURES
-----------
-Basic file operations: upload, delete
- Image(jpg, png, gif) operations: resize, create thumbnails, preview
- Support for private file system
- Configurable limits for user roles: file size per upload, directory quota, file extensions, and image dimensions
- Personal or shared folders for users
- Permissions per directory
- Ftp-like directory navigation
- File sorting by name, size, dimensions, date
- Tabbed interface for file operations
- Keyboard shortcuts(up, down, insert(or enter), delete, home, end, ctrl+A, R(esize), T(humbnails), U(pload)).
- Built-in support for inline image/file insertion into textareas
- Multiple file selection(using ctrl or shift)
- Ajax file operations
- Themable layout using tpl files
INSTALLATION
-----------
1) Copy imce directory to your modules directory
2) Enable the module at: /admin/build/modules
3) Create configuration profiles and assign them to user roles at /admin/config/media/imce
4) Test it at /imce.
5) See INTEGRATION METHODS to make IMCE collaborate with your application if it's not already integrated.
Notes:
- When you configure IMCE for inline image/file insertion into textareas there should appear an IMCE link under each textarea you specified.
- If you are uploading files containing unicode characters, it is strongly recommended to use the transliteration module that sanitizes filenames by converting characters from unicode to us-ascii. http://drupal.org/project/transliteration
- If you are using CCK, you may want to check the File field sources module at http://drupal.org/project/filefield_sources
FREQUENTLY FACED ISSUES
-----------
- Inaccessible/invalid directory or subdirectory:
In some server configurations, manually(ftp or directly) created directories may not be writable by PHP(by IMCE). In this case, you have to set the chmod permissions of the directory to 0777 in order to make it writable by anyone.
You should also make sure that in each configuration profile all of the defined directories are located under drupal's file system path which is usually "files".
And also if "safe mode restriction" is active in your server, don't expect IMCE to run flawlessly.
- Disappearing images after node submission:
Having nothing to do with IMCE, it appeared many times in issue queues. This is an input filtering issue that can be resolved by adding <img> tag into the default input format. Using Full HTML is another solution. See admin/config/content/formats.
- Upload does not work in Opera
Jquery form plugin before version 2.09 has problems with Opera 9.2+. Replace Drupal's misc/jquery.form.js with the one at http://jquery.malsup.com/form/#download
- IMCE may have problem working with Google Analytics and Secure pages modules. Just make sure to add imce* path to the exceptions list of these modules.
INTEGRATION METHODS
-----------
Here are the applications that already integrated IMCE.
WYSIWYG:
Install http://drupal.org/project/imce_wysiwyg bridge module and enable IMCE as a plug-in in WYSIWYG settings
BUEditor:
IMCE is integrated in image and link dialogs.
FCKeditor(without WYSIWYG):
Fckeditor profile->File browser settings->IMCE integration
If your application is not one of the above, please keep reading in order to learn how to integrate IMCE.
Let's create a CASE and embody the IMCE integration on it:
- An application named myApp
- Has an url field for file url:
<input type="text" name="urlField" id="urlField">
- Has a browse button with click event(inline or set by jQuery): (This can be a text link or anything that is clickable)
<input type="button" value="Browse" onclick="openFileBrowser()">
Now let's go through the integration methods and define the openFileBrowser function that opens IMCE and makes it fill our url field on file selection.
INTEGRATION BY URL
-----------
When IMCE is opened using an url that contains &app=applicationName|fileProperty1@FieldId1|fileProperty2@FieldId2|...
the specified fields are filled with the specified properties of the selected file.
Avaliable file properties are: url, name, size(formatted), width, height, date(formatted), bytes(integer size in bytes), time(integer date timestamp), id(file id for newly uploaded files, 0 or integer), relpath(rawurlencoded path relative to file directory path.)
In our CASE, we should open IMCE using this URL: /imce?app=myApp|url@urlField which contains our application name and our url field id
function openFileBrowser() {
window.open('/imce?app=myApp|url@urlField', '', 'width=760,height=560,resizable=1');
}
That's all we need. Leave the rest to IMCE.
It will automatically create an operation tab named "Send to myApp" that sends the file url to our url field.
Clicking the files in preview do the same thing as well.
- What if we had another field for another file property e.g, Size: <input type="text" id="file-size"> ?
- We should have opened imce using this URL: /imce?app=myApp|url@urlField|size@file-size
- USING imceload:
You can point a predefined function to be executed when IMCE loads.
When the URL is like "app=myApp|imceload@myOnloadFunc", IMCE looks for "myOnloadFunc" in the parent window and executes it with the window parameter referring to IMCE window.
function myOnloadFunc (win) {//any method of imce is available through win.imce
win.imce.setSendTo('Give it to myApplication baby', myFileHandler);//you should also define myFileHandler
}
- USING sendto:
You can point a predefined function to which the selected files are sent.
When the URL is like "app=myApp|sendto@myFileHandler", IMCE calls "myFileHandler" function of the parent window with file and window parameters.
function myFileHandler (file, win) {
$('#urlFieldId').val(file.url);//insert file url into the url field
win.close();//close IMCE
}
Usually sendto method is easier to implement, on the other hand imceload method is more flexible as you manually add your sento operator and also can do any modification before IMCE shows up.
ADVANCED INTEGRATION
-----------
In case:
- Your application wants to go beyond the simple "give me that file property" interaction with IMCE.
- Your application wants IMCE to send multiple files to it.(e.g., a gallery application)
- Your application wants to gain total control over IMCE.
Then you should consider applying advanced integration.
The initial step of advanced integration is the same as imceload-integration above.
We open IMCE and set its onload function:
window.open('/imce?app=myApp|imceload@initiateMyApp', '', 'width=760,height=560,resizable=1'); //initiateMyApp(win) will run when imce loads
Now we define our initiator function in which we do the necessary manipulations to IMCE interface:
initiateMyApp = function (win) {
var imce = win.imce;
...use imce methods to add/remove/change things...
}
- Allright, but what do we add/romeve/change in IMCE ?
- Depends on our goal. Here are some properties and methods that can help us to achieve it:
Hooks
imce.hooks.load: an array of functions that run after imce loads. they are called with the window parameter.
imce.hooks.list: an array of functions that run while processing the file list. each row of the file list is sent to these functions.
imce.hooks.navigate: an array of functions that run after a directory is loaded. parameters sent are data(from ajax or cache), old_directory, cached(boolean that states the data is from the cache or not).
imce.hooks.cache: an array of functions that run just before a new directory is loaded. parameters are cached_data and new_directory.
Directory related properties
imce.tree: stores the directory list where imce.tree['.'] is the root element.
Directory related methods
imce.dirAdd(directory_name, parent_element, clickable): adds directory_name under parent_element. ex: imce.dirAdd('foo', imce.dir['.'], true)
imce.dirSubdirs(directory_name, subdirectories): adds each subdirectory in subdirectories array under directory_name. ex: imce.dirSubdirs('foo', ['bar', 'baz'])
File related properties
imce.findex: indexed array of files(table rows that contain file properties.)
imce.fids: object containing file_id(file name)-file(row) pairs.
imce.selected: object containing currently selected file_id(file name)-file(row) pairs.
File related methods
imce.fileAdd(file): adds the file object to the list. file object has the properties; name, size(bytes), width, height, date(timestamp), fsize(formatted), fdate(formatted)
imce.fileRemove(fiile_id): removes the file having the file_id from the list.
imce.fileGet(file_id). returns the file object having the file_id. file object contains name, url, size, bytes, width, height, date, time, id(file id for newly uploaded files, 0 or integer), relpath(rawurlencoded path relative to file directory path.)
File operations
imce.opAdd(op): adds an operation tab to the interface. op contains name, title, content(optional), func(optional onclick function)
imce.opEnable(name), imce.opDisable(name): enable/disable operation tabs.
Miscellaneous
imce.setMessage(msg, type): logs a message of the type(status, warning, error)
NOTES:
- All URL strings in the examples start with "/" considering the base path is "/".
In case your drupal is running on a sub directory e.g, http://localhost/drupal, these URLs should start with "/drupal/".
There is a safer solution that does not require manual URL fixing: If the Drupal javascript object is avaliable in your page you can use Drupal.settings.basePath at the beginning of URLs (Drupal.settings.basePath+'?q=imce....'). Note that, this won't work with multilingual paths with language prefixes.
- file and directory ids(names) used in imce.js are url encoded forms of original names. They are decoded using imce.decode and displayed in the lists.
\ No newline at end of file
sites/all/modules/imce/css/close.png

395 B

sites/all/modules/imce/css/collapsed.png

160 B

sites/all/modules/imce/css/delete.png

359 B

sites/all/modules/imce/css/error.png

615 B

sites/all/modules/imce/css/expanded.png

157 B

sites/all/modules/imce/css/folder-open.png

1016 B

sites/all/modules/imce/css/folder-root.png

377 B

sites/all/modules/imce/css/folder.png

284 B

sites/all/modules/imce/css/header.png

188 B

sites/all/modules/imce/css/help.png

707 B

/* $Id: imce-content.css,v 1.2 2010/03/17 20:55:38 ufku Exp $ */
/*Body*/
body.imce {
padding: 2px;
background: none;
text-align: left;
}
/*Main container*/
/*reset all tags.*/
#imce-content, #imce-content * {
font: 11px/16px Verdana, sans-serif;
margin: 0;
padding: 0;
color: #444;
background: none;
border: none;
float: none;
list-style: none;
}
#imce-content {
position: relative;
background-color: #fff;
max-width: 760px;
}
#imce-content a {
text-decoration: none;
}
#imce-content label {
font-weight: bold;
}
#imce-content label.option {
font-weight: normal;
}
#imce-content input.form-text, #imce-content input[type=text], #imce-content input.form-file, #imce-content input[type=file], #imce-content select {
border: 1px inset #aaa;
padding: 2px;
background-color: #fff;
margin: 1px;
width: auto;
}
#imce-content input.form-submit, #imce-content input[type=submit], #imce-content button {
border: 2px groove #fff;
padding: 2px 6px 2px 20px;
margin: 2px 0;
background: #e8e8d8 url(submit.png) no-repeat 2px 50%;
}
#imce-content [disabled], #imce-content .disabled {
color: #999;
cursor: default;
text-decoration: none !important;
}
#imce-content input.loading {
background-image: url(loading.gif) !important;
}
#imce-content .form-item {
margin: 4px 0;
}
#imce-content strong, #imce-content h4 {
font-weight: bold;
}
#imce-content em {
font-style: italic;
}
#imce-content ul.tips {
margin: 2px 8px;
}
#imce-content ul.tips li {
list-style: circle inside;
line-height: 18px;
}
/*Main sections under imce-content*/
#ops-wrapper {
margin-bottom: 2px;
background: #d0d7e7 url(ops.png) repeat-x;
border: 1px solid #a5b9cd;
}
#browse-wrapper {
overflow: hidden;
height: 260px;
clear: both;
}
#browse-resizer {}
#preview-wrapper {
height: 180px;
overflow: auto;
}
#content-resizer {}
/*columns of browse-wrapper*/
#navigation-wrapper {
width: 25%;
height: 100%;
overflow: auto;
float: left;
position: relative;
}
#navigation-resizer {
height: 100%;
float: left;
}
#sub-browse-wrapper {
height: 100%;
overflow: auto;
position: relative;
}
/*rows of sub-browse wrapper*/
#file-header-wrapper {
height: 25px;
background: url(header.png) repeat-x 0 0;
position: relative;
}
#file-list-wrapper {
padding-bottom: 20px;/*#dir-stat height*/
outline: none;
}
#dir-stat {
position: absolute;
z-index: 1;
bottom: 0;
padding: 2px 5px;
background-color: #e9ecef;
}
#dir-stat, #dir-stat * {
font-size: 0.9em;
}
/*Navigation header*/
#navigation-header {
background: url(header.png) repeat-x 0 0;
position: absolute;
z-index: 1;
width: 100%;
height: 25px;
}
#navigation-header span {
display: inline-block;
padding: 4px 4px 5px 20px;
font-weight: bold;
background: url(tree.png) no-repeat 0 50%;
}
/*Navigation tree (ul)*/
#navigation-tree {
margin-top: 25px;/*navigation-header height*/
}
#navigation-tree ul {
margin-left: 15px;
}
#navigation-tree li {
padding: 2px;
background: transparent url(collapsed.png) no-repeat 3px 6px;
white-space: nowrap;
}
#navigation-tree li.expanded {
background-image: url(expanded.png);
}
#navigation-tree li.leaf {
background-image: url(leaf.png);
}
#navigation-tree li.loading {
background-image: url(loading.gif);
background-position: 0 2px;
}
#navigation-tree li span.expander {
display: inline-block;
width: 12px;
cursor: pointer;
margin-right: 1px;
}
#navigation-tree li a {
display: inline-block;
}
#navigation-tree li a:hover {
text-decoration: underline;
}
#navigation-tree li a.folder {
margin-left: 2px;
padding-left: 18px;
background: transparent url(folder.png) no-repeat 0 50%;
}
#navigation-tree li a.active {
font-weight: bold;
background-image: url(folder-open.png);
background-color: #ecf0f4;
}
#navigation-tree li.root > a.folder {
background-image: url(folder-root.png);
}
/*File list and header. (Accessible by #file-list and #file-header. Both have the classname "files")*/
#file-header, #file-list {
table-layout: fixed;
width: 100%;
}
#file-header td {
padding: 4px;
font-weight: bold;
cursor: default;
}
#file-header td.asc {
color: #f60;
}
#file-header td.asc:after {
content: "\2193";
font-weight: normal;
}
#file-header td.desc {
color: #09f;
}
#file-header td.desc:after {
content: "\2191";
font-weight: normal;
}
#file-list td {
overflow: hidden;
border-top: 1px solid #ccf;
border-bottom: 1px solid #ccf;
padding: 4px;
cursor: default;
}
#file-list td.name, #file-header td.name {
min-width: 12em;
white-space: nowrap;
}
#file-list td.size, #file-header td.size {
width: 6.5em;
text-align: right;
}
#file-list td.width, #file-header td.width {
width: 5em;
text-align: right;
}
#file-list td.height, #file-header td.height {
width: 5em;
}
#file-list td.date, #file-header td.date {
width: 12em;
text-align: center;
}
#file-list tr:hover td {
background-color: #e9ecef;
}
#file-list tr.selected td {
background-color: #07f;
color: #fff;
}
#file-list td.name img {
vertical-align: middle;
margin-right: 3px;
}
/*File operations*/
#op-items {
min-height: 16px;
}
#op-contents {
position: absolute;
z-index: 2;
}
#op-contents .op-content {
display: none;
padding: 14px;
border: 2px solid #344454;
background-color: #f5f5f5;
position: relative;
}
#op-close-link {
display: inline-block;
position: absolute;
z-index: 3;
top: 2px;
right: 2px;
width: 14px;
height: 14px;
background: url(close.png) no-repeat 50% 50%;
visibility: hidden;
}
#ops-list {
}
#ops-list li {
display: block;
float: left;
}
#ops-list a {
display: block;
padding: 5px 8px 5px 20px;
text-decoration: none;
background: url(op.png) no-repeat 2px 50%;
}
#ops-list a:hover {
background-color: #e9ecef;
}
#ops-list li.active a {
background-color: #f9f8f7;
}
#ops-list a span {
display: inline-block;
color: #0e1f43;
}
#ops-list li.loading a {
background-image: url(loading.gif);
}
/*Custom op styles*/
#op-item-upload a, #imce-content #edit-upload {
background-image: url(upload.png);
}
#op-item-thumb a, #imce-content #edit-thumb {
background-image: url(thumb.png);
}
#op-item-resize a, #imce-content #edit-resize {
background-image: url(resize.png);
}
#op-item-delete a {
background-image: url(delete.png);
}
/*resizers*/
#imce-content .y-resizer {
height: 5px;
cursor: n-resize;
background: #f4f5f6 url(y-resizer.png) no-repeat 50% 50%;
border-top: 1px solid #e0e3e5;
border-bottom: 1px solid #e0e3e5;
}
#imce-content .x-resizer {
width: 5px;
cursor: e-resize;
background: #f4f5f6 url(x-resizer.png) no-repeat 50% 50%;
border-left: 1px solid #e0e3e5;
border-right: 1px solid #e0e3e5;
}
/*Help box*/
#help-box {
position: absolute;
z-index: 9;
right: 0;
background: url(help.png) no-repeat 100% 0;
max-width: 500px;
}
#help-box-title {
cursor: help;
}
#help-box-title span {
display: inline-block;
width: 16px;
height: 16px;
overflow: hidden;
visibility: hidden;
}
#help-box-content {
display: none;
padding: 10px;
border: 2px solid #344454;
background-color: #f5f5f5;
}
#help-box:hover #help-box-content, #help-box-content.hover {
display: block;
}
/*Message box*/
#message-box {
display: none;
position: absolute;
width: 60%;
left: 20%;
top: 40%;
z-index: 10;
padding: 5px;
background-color: #fff;
border: 2px solid #000;
}
#message-box * {
font-size: 1.1em;
font-weight: bold;
color: #000;
}
#imce-content div.message {
background: url(status.png) no-repeat 0 0;
padding-left: 20px;
margin: 2px 0;
}
#imce-content div.error {
background: url(error.png) no-repeat 0 0;
padding-left: 20px;
}
#imce-content div.warning {
background: url(warning.png) no-repeat 0 0;
padding-left: 20px;
}
#log-messages {
height: 60px;
overflow: auto;
border: 1px solid #000;
padding: 2px 4px;
}
#log-messages * {
font-family: monospace;
}
#file-preview {
text-align: center;
}
.imce-hide, .js #forms-wrapper {
display: none;
}
/*IE*/
.ie #imce-content input, .ie #imce-content select {
vertical-align: middle;
line-height: 1.2em;
}
.ie-7 #navigation-tree li {
list-style-image: none;
}
.ie-7 #imce-content input.form-submit, .ie-7 #imce-content input[type=submit], .ie-7 #imce-content button {
border-style: outset;
}
.ie-7 #ops-list a span {
cursor: pointer;
}
\ No newline at end of file
sites/all/modules/imce/css/leaf.png

156 B

sites/all/modules/imce/css/loading.gif

1.08 KiB

sites/all/modules/imce/css/op.png

340 B

sites/all/modules/imce/css/ops.png

203 B

sites/all/modules/imce/css/resize.png

370 B

sites/all/modules/imce/css/status.png

572 B

sites/all/modules/imce/css/submit.png

336 B

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment