Merge branch 'develop' into hooks
|
@ -10,6 +10,13 @@
|
|||
is now actually used.
|
||||
- replaced folder tree view with a tree based on jquery which loads subfolders
|
||||
on demand
|
||||
- attribute value must match regular expression if given (Bug #49)
|
||||
- show more information about attributes in attribute manager
|
||||
- set url in notification mail after document review (Bug #56)
|
||||
- new configuration setting specifying a list of user ids that cannot be deleted
|
||||
- fix output of breadcrumbs on some pages (Bug #55)
|
||||
- do not take document comment for version if version comment is empty.
|
||||
The user must explicitly force it.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Changes in version 4.2.2
|
||||
|
|
10
Makefile
|
@ -1,4 +1,4 @@
|
|||
VERSION=4.3.0
|
||||
VERSION=4.3.0pre1
|
||||
SRC=CHANGELOG inc conf utils index.php languages views op out README.md README.Notification README.Ubuntu drop-tables-innodb.sql styles js TODO LICENSE Makefile webdav install
|
||||
#restapi webapp
|
||||
|
||||
|
@ -19,7 +19,13 @@ webdav:
|
|||
(cd tmp; tar --exclude=.svn -czvf ../seeddms-webdav-$(VERSION).tar.gz seeddms-webdav-$(VERSION))
|
||||
rm -rf tmp
|
||||
|
||||
webapp:
|
||||
mkdir -p tmp/seeddms-webapp-$(VERSION)
|
||||
cp -a restapi webapp tmp/seeddms-webapp-$(VERSION)
|
||||
(cd tmp; tar --exclude=.svn -czvf ../seeddms-webapp-$(VERSION).tar.gz seeddms-webapp-$(VERSION))
|
||||
rm -rf tmp
|
||||
|
||||
doc:
|
||||
phpdoc -d SeedDMS_Core --ignore 'getusers.php,getfoldertree.php,config.php,reverselookup.php' -t html
|
||||
|
||||
.PHONY: webdav
|
||||
.PHONY: webdav webapp
|
||||
|
|
|
@ -221,6 +221,13 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */
|
|||
*/
|
||||
protected $_valueset;
|
||||
|
||||
/**
|
||||
* @var string regular expression the value must match
|
||||
*
|
||||
* @access protected
|
||||
*/
|
||||
protected $_regex;
|
||||
|
||||
/**
|
||||
* @var object SeedDMS_Core_DMS reference to the dms instance this attribute definition belongs to
|
||||
*
|
||||
|
@ -258,7 +265,7 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */
|
|||
* @param string $valueset separated list of allowed values, the first char
|
||||
* is taken as the separator
|
||||
*/
|
||||
function SeedDMS_Core_AttributeDefinition($id, $name, $objtype, $type, $multiple, $minvalues, $maxvalues, $valueset) { /* {{{ */
|
||||
function SeedDMS_Core_AttributeDefinition($id, $name, $objtype, $type, $multiple, $minvalues, $maxvalues, $valueset, $regex) { /* {{{ */
|
||||
$this->_id = $id;
|
||||
$this->_name = $name;
|
||||
$this->_type = $type;
|
||||
|
@ -268,6 +275,7 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */
|
|||
$this->_maxvalues = $maxvalues;
|
||||
$this->_valueset = $valueset;
|
||||
$this->_separator = '';
|
||||
$this->_regex = $regex;
|
||||
$this->_dms = null;
|
||||
} /* }}} */
|
||||
|
||||
|
@ -438,11 +446,40 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */
|
|||
return true;
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Get the regular expression as saved in the database
|
||||
*
|
||||
* @return string regular expression
|
||||
*/
|
||||
function getRegex() { /* {{{ */
|
||||
return $this->_regex;
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Set the regular expression
|
||||
*
|
||||
* A value of the attribute must match this regular expression.
|
||||
*
|
||||
* @param string $regex
|
||||
* @return boolean true if regex could be set, otherwise false
|
||||
*/
|
||||
function setRegex($regex) { /* {{{ */
|
||||
$db = $this->_dms->getDB();
|
||||
|
||||
$queryStr = "UPDATE tblAttributeDefinitions SET regex =".$db->qstr($regex)." WHERE id = " . $this->_id;
|
||||
$res = $db->getResult($queryStr);
|
||||
if (!$res)
|
||||
return false;
|
||||
|
||||
$this->_regex = $regex;
|
||||
return true;
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Check if the attribute definition is used
|
||||
*
|
||||
* Checks all attributes whether at least one of them referenceѕ
|
||||
* this attribute definition
|
||||
* Checks all documents, folders and document content whether at least
|
||||
* one of them referenceѕ this attribute definition
|
||||
*
|
||||
* @return boolean true if attribute definition is used, otherwise false
|
||||
*/
|
||||
|
@ -466,6 +503,70 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */
|
|||
return true;
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Return a list of documents, folders, document contents where this
|
||||
* attribute definition is used
|
||||
*
|
||||
* @param integer $limit return not more the n objects of each type
|
||||
* @return boolean true if attribute definition is used, otherwise false
|
||||
*/
|
||||
function getStatistics($limit=0) { /* {{{ */
|
||||
$db = $this->_dms->getDB();
|
||||
|
||||
$result = array('docs'=>array(), 'folders'=>array(), 'contents'=>array());
|
||||
if($this->_objtype == SeedDMS_Core_AttributeDefinition::objtype_all ||
|
||||
$this->_objtype == SeedDMS_Core_AttributeDefinition::objtype_document) {
|
||||
$queryStr = "SELECT * FROM tblDocumentAttributes WHERE attrdef=".$this->_id;
|
||||
if($limit)
|
||||
$queryStr .= " limit ".(int) $limit;
|
||||
$resArr = $db->getResultArray($queryStr);
|
||||
if($resArr) {
|
||||
foreach($resArr as $rec) {
|
||||
if($doc = $this->_dms->getDocument($rec['document'])) {
|
||||
$result['docs'][] = $doc;
|
||||
}
|
||||
}
|
||||
}
|
||||
$queryStr = "SELECT count(*) c, value FROM tblDocumentAttributes WHERE attrdef=".$this->_id." GROUP BY value ORDER BY c DESC";
|
||||
$resArr = $db->getResultArray($queryStr);
|
||||
if($resArr) {
|
||||
$result['frequencies'] = $resArr;
|
||||
}
|
||||
}
|
||||
|
||||
if($this->_objtype == SeedDMS_Core_AttributeDefinition::objtype_all ||
|
||||
$this->_objtype == SeedDMS_Core_AttributeDefinition::objtype_folder) {
|
||||
$queryStr = "SELECT * FROM tblFolderAttributes WHERE attrdef=".$this->_id;
|
||||
if($limit)
|
||||
$queryStr .= " limit ".(int) $limit;
|
||||
$resArr = $db->getResultArray($queryStr);
|
||||
if($resArr) {
|
||||
foreach($resArr as $rec) {
|
||||
if($folder = $this->_dms->getFolder($rec['folder'])) {
|
||||
$result['folders'][] = $folder;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($this->_objtype == SeedDMS_Core_AttributeDefinition::objtype_all ||
|
||||
$this->_objtype == SeedDMS_Core_AttributeDefinition::objtype_documentcontent) {
|
||||
$queryStr = "SELECT * FROM tblDocumentContentAttributes WHERE attrdef=".$this->_id;
|
||||
if($limit)
|
||||
$queryStr .= " limit ".(int) $limit;
|
||||
$resArr = $db->getResultArray($queryStr);
|
||||
if($resArr) {
|
||||
foreach($resArr as $rec) {
|
||||
if($content = $this->_dms->getDocumentContent($rec['content'])) {
|
||||
$result['contents'][] = $content;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Remove the attribute definition
|
||||
* Removal is only executed when the definition is not used anymore.
|
||||
|
|
|
@ -469,6 +469,30 @@ class SeedDMS_Core_DMS {
|
|||
return $document;
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Return a document content by its id
|
||||
*
|
||||
* This function retrieves a document content from the database by its id.
|
||||
*
|
||||
* @param integer $id internal id of document content
|
||||
* @return object instance of {@link SeedDMS_Core_DocumentContent} or false
|
||||
*/
|
||||
function getDocumentContent($id) { /* {{{ */
|
||||
if (!is_numeric($id)) return false;
|
||||
|
||||
$queryStr = "SELECT * FROM tblDocumentContent WHERE id = ".(int) $id;
|
||||
$resArr = $this->db->getResultArray($queryStr);
|
||||
if (is_bool($resArr) && $resArr == false)
|
||||
return false;
|
||||
if (count($resArr) != 1)
|
||||
return false;
|
||||
$row = $resArr[0];
|
||||
|
||||
$document = $this->getDocument($row['document']);
|
||||
$version = new SeedDMS_Core_DocumentContent($row['id'], $document, $row['version'], $row['comment'], $row['date'], $row['createdBy'], $row['dir'], $row['orgFileName'], $row['fileType'], $row['mimeType'], $row['fileSize'], $row['checksum']);
|
||||
return $version;
|
||||
} /* }}} */
|
||||
|
||||
function makeTimeStamp($hour, $min, $sec, $year, $month, $day) {
|
||||
$thirtyone = array (1, 3, 5, 7, 8, 10, 12);
|
||||
$thirty = array (4, 6, 9, 11);
|
||||
|
@ -1453,7 +1477,7 @@ class SeedDMS_Core_DMS {
|
|||
|
||||
$resArr = $resArr[0];
|
||||
|
||||
$attrdef = new SeedDMS_Core_AttributeDefinition($resArr["id"], $resArr["name"], $resArr["objtype"], $resArr["type"], $resArr["multiple"], $resArr["minvalues"], $resArr["maxvalues"], $resArr["valueset"]);
|
||||
$attrdef = new SeedDMS_Core_AttributeDefinition($resArr["id"], $resArr["name"], $resArr["objtype"], $resArr["type"], $resArr["multiple"], $resArr["minvalues"], $resArr["maxvalues"], $resArr["valueset"], $resArr["regex"]);
|
||||
$attrdef->setDMS($this);
|
||||
return $attrdef;
|
||||
} /* }}} */
|
||||
|
@ -1477,7 +1501,7 @@ class SeedDMS_Core_DMS {
|
|||
|
||||
$resArr = $resArr[0];
|
||||
|
||||
$attrdef = new SeedDMS_Core_AttributeDefinition($resArr["id"], $resArr["name"], $resArr["objtype"], $resArr["type"], $resArr["multiple"], $resArr["minvalues"], $resArr["maxvalues"], $resArr["valueset"]);
|
||||
$attrdef = new SeedDMS_Core_AttributeDefinition($resArr["id"], $resArr["name"], $resArr["objtype"], $resArr["type"], $resArr["multiple"], $resArr["minvalues"], $resArr["maxvalues"], $resArr["valueset"], $resArr["regex"]);
|
||||
$attrdef->setDMS($this);
|
||||
return $attrdef;
|
||||
} /* }}} */
|
||||
|
@ -1505,7 +1529,7 @@ class SeedDMS_Core_DMS {
|
|||
$attrdefs = array();
|
||||
|
||||
for ($i = 0; $i < count($resArr); $i++) {
|
||||
$attrdef = new SeedDMS_Core_AttributeDefinition($resArr[$i]["id"], $resArr[$i]["name"], $resArr[$i]["objtype"], $resArr[$i]["type"], $resArr[$i]["multiple"], $resArr[$i]["minvalues"], $resArr[$i]["maxvalues"], $resArr[$i]["valueset"]);
|
||||
$attrdef = new SeedDMS_Core_AttributeDefinition($resArr[$i]["id"], $resArr[$i]["name"], $resArr[$i]["objtype"], $resArr[$i]["type"], $resArr[$i]["multiple"], $resArr[$i]["minvalues"], $resArr[$i]["maxvalues"], $resArr[$i]["valueset"], $resArr[$i]["regex"]);
|
||||
$attrdef->setDMS($this);
|
||||
$attrdefs[$i] = $attrdef;
|
||||
}
|
||||
|
@ -1524,13 +1548,13 @@ class SeedDMS_Core_DMS {
|
|||
* @param string $valueset list of allowed values (csv format)
|
||||
* @return object of {@link SeedDMS_Core_User}
|
||||
*/
|
||||
function addAttributeDefinition($name, $objtype, $type, $multiple=0, $minvalues=0, $maxvalues=1, $valueset='') { /* {{{ */
|
||||
function addAttributeDefinition($name, $objtype, $type, $multiple=0, $minvalues=0, $maxvalues=1, $valueset='', $regex='') { /* {{{ */
|
||||
if (is_object($this->getAttributeDefinitionByName($name))) {
|
||||
return false;
|
||||
}
|
||||
if(!$type)
|
||||
return false;
|
||||
$queryStr = "INSERT INTO tblAttributeDefinitions (name, objtype, type, multiple, minvalues, maxvalues, valueset) VALUES (".$this->db->qstr($name).", ".intval($objtype).", ".intval($type).", ".intval($multiple).", ".intval($minvalues).", ".intval($maxvalues).", ".$this->db->qstr($valueset).")";
|
||||
$queryStr = "INSERT INTO tblAttributeDefinitions (name, objtype, type, multiple, minvalues, maxvalues, valueset, regex) VALUES (".$this->db->qstr($name).", ".intval($objtype).", ".intval($type).", ".intval($multiple).", ".intval($minvalues).", ".intval($maxvalues).", ".$this->db->qstr($valueset).", ".$this->db->qstr($regex).")";
|
||||
$res = $this->db->getResult($queryStr);
|
||||
if (!$res)
|
||||
return false;
|
||||
|
|
|
@ -3228,7 +3228,6 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */
|
|||
"SELECT * FROM tblWorkflowDocumentContent WHERE workflow=". intval($this->_workflow->getID())
|
||||
. " AND `version`='".$this->_version
|
||||
."' AND `document` = '". $this->_document->getID() ."' ";
|
||||
echo $queryStr;
|
||||
$recs = $db->getResultArray($queryStr);
|
||||
if (is_bool($recs) && !$recs) {
|
||||
$db->rollbackTransaction();
|
||||
|
@ -3240,7 +3239,6 @@ class SeedDMS_Core_DocumentContent extends SeedDMS_Core_Object { /* {{{ */
|
|||
}
|
||||
|
||||
$queryStr = "DELETE FROM `tblWorkflowDocumentContent` WHERE `workflow` =". intval($this->_workflow->getID())." AND `document` = '". $this->_document->getID() ."' AND `version` = '" . $this->_version."'";
|
||||
echo $queryStr;
|
||||
if (!$db->getResult($queryStr)) {
|
||||
$db->rollbackTransaction();
|
||||
return false;
|
||||
|
|
|
@ -701,9 +701,9 @@ class SeedDMS_Core_Folder extends SeedDMS_Core_Object {
|
|||
|
||||
$document = $this->_dms->getDocument($db->getInsertID());
|
||||
|
||||
if ($version_comment!="")
|
||||
// if ($version_comment!="")
|
||||
$res = $document->addContent($version_comment, $owner, $tmpFile, $orgFileName, $fileType, $mimeType, $reviewers, $approvers,$reqversion, $version_attributes, $workflow);
|
||||
else $res = $document->addContent($comment, $owner, $tmpFile, $orgFileName, $fileType, $mimeType, $reviewers, $approvers,$reqversion, $version_attributes, $workflow);
|
||||
// else $res = $document->addContent($comment, $owner, $tmpFile, $orgFileName, $fileType, $mimeType, $reviewers, $approvers,$reqversion, $version_attributes, $workflow);
|
||||
|
||||
if (is_bool($res) && !$res) {
|
||||
$db->rollbackTransaction();
|
||||
|
|
|
@ -158,5 +158,37 @@ class SeedDMS_Core_Object { /* {{{ */
|
|||
return true;
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Remove an attribute of the object for the given attribute definition
|
||||
*
|
||||
* @return boolean true if operation was successful, otherwise false
|
||||
*/
|
||||
function removeAttribute($attrdef) { /* {{{ */
|
||||
$db = $this->_dms->getDB();
|
||||
if (!$this->_attributes) {
|
||||
$this->getAttributes();
|
||||
}
|
||||
if(isset($this->_attributes[$attrdef->getId()])) {
|
||||
switch(get_class($this)) {
|
||||
case "SeedDMS_Core_Document":
|
||||
$queryStr = "DELETE FROM tblDocumentAttributes WHERE document=".$this->_id." AND attrdef=".$attrdef->getId();
|
||||
break;
|
||||
case "SeedDMS_Core_DocumentContent":
|
||||
$queryStr = "DELETE FROM tblDocumentContentAttributes WHERE content=".$this->_id." AND attrdef=".$attrdef->getId();
|
||||
break;
|
||||
case "SeedDMS_Core_Folder":
|
||||
$queryStr = "DELETE FROM tblFolderAttributes WHERE folder=".$this->_id." AND attrdef=".$attrdef->getId();
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
$res = $db->getResult($queryStr);
|
||||
if (!$res)
|
||||
return false;
|
||||
|
||||
unset($this->_attributes[$attrdef->getId()]);
|
||||
}
|
||||
return true;
|
||||
} /* }}} */
|
||||
} /* }}} */
|
||||
?>
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
</stability>
|
||||
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
|
||||
<notes>
|
||||
- various small corrections
|
||||
</notes>
|
||||
<contents>
|
||||
<dir baseinstalldir="SeedDMS" name="/">
|
||||
|
|
|
@ -52,6 +52,8 @@ class Settings { /* {{{ */
|
|||
var $_loginFailure = 0;
|
||||
// maximum amount of bytes a user may consume, 0 = unlimited
|
||||
var $_quota = 0;
|
||||
// comma separated list of undeleteable user ids
|
||||
var $_undelUserIds = 0;
|
||||
// Restricted access: only allow users to log in if they have an entry in
|
||||
// the local database (irrespective of successful authentication with LDAP).
|
||||
var $_restricted = true;
|
||||
|
@ -347,6 +349,7 @@ class Settings { /* {{{ */
|
|||
$this->_passwordHistory = intval($tab["passwordHistory"]);
|
||||
$this->_loginFailure = intval($tab["loginFailure"]);
|
||||
$this->_quota = intval($tab["quota"]);
|
||||
$this->_undelUserIds = strval($tab["undelUserIds"]);
|
||||
$this->_encryptionKey = strval($tab["encryptionKey"]);
|
||||
$this->_cookieLifetime = intval($tab["cookieLifetime"]);
|
||||
$this->_restricted = Settings::boolVal($tab["restricted"]);
|
||||
|
@ -606,6 +609,7 @@ class Settings { /* {{{ */
|
|||
$this->setXMLAttributValue($node, "passwordHistory", $this->_passwordHistory);
|
||||
$this->setXMLAttributValue($node, "loginFailure", $this->_loginFailure);
|
||||
$this->setXMLAttributValue($node, "quota", $this->_quota);
|
||||
$this->setXMLAttributValue($node, "undelUserIds", $this->_undelUserIds);
|
||||
$this->setXMLAttributValue($node, "encryptionKey", $this->_encryptionKey);
|
||||
$this->setXMLAttributValue($node, "cookieLifetime", $this->_cookieLifetime);
|
||||
$this->setXMLAttributValue($node, "restricted", $this->_restricted);
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
|
||||
class SeedDMS_Version {
|
||||
|
||||
var $_number = "4.3.0";
|
||||
var $_number = "4.3.0pre1";
|
||||
var $_string = "SeedDMS";
|
||||
|
||||
function SeedDMS_Version() {
|
||||
|
|
|
@ -4,3 +4,7 @@ Directory for language files
|
|||
This version uses different names for the directories containing the
|
||||
language files. Users should explicitly set the language the next time
|
||||
they log in in order to update their user preferences.
|
||||
|
||||
You as the system administrator should also manually edit conf/settings.xml
|
||||
and set the default language to one of the available languages as can
|
||||
be seen in the directory 'languages'.
|
||||
|
|
|
@ -2,6 +2,8 @@ BEGIN;
|
|||
|
||||
ALTER TABLE tblSessions ADD COLUMN `splashmsg` TEXT DEFAULT '';
|
||||
|
||||
ALTER TABLE tblAttributeDefinitions ADD COLUMN `regex` TEXT DEFAULT '';
|
||||
|
||||
UPDATE tblVersion set major=4, minor=3, subminor=0;
|
||||
|
||||
COMMIT;
|
||||
|
|
|
@ -2,6 +2,8 @@ START TRANSACTION;
|
|||
|
||||
ALTER TABLE tblSessions ADD COLUMN `splashmsg` TEXT DEFAULT '';
|
||||
|
||||
ALTER TABLE tblAttributeDefinitions ADD COLUMN `regex` TEXT DEFAULT '';
|
||||
|
||||
UPDATE tblVersion set major=4, minor=3, subminor=0;
|
||||
|
||||
COMMIT;
|
||||
|
|
|
@ -94,6 +94,7 @@ $text = array(
|
|||
'attrdef_type' => "Typ",
|
||||
'attrdef_minvalues' => "Min. Anzahl Werte",
|
||||
'attrdef_maxvalues' => "Max. Anzahl Werte",
|
||||
'attrdef_regex' => "Regulärer Ausdruck",
|
||||
'attrdef_valueset' => "Werteauswahl",
|
||||
'attribute_changed_email_subject' => "[sitename]: [name] - Attribut geändert",
|
||||
'attribute_changed_email_body' => "Attribut geändert\r\nDokument: [name]\r\nVersion: [version]\r\nAttribut: [attribute]\r\nElternordner: [folder_path]\r\nBenutzer: [username]\r\nURL: [url]",
|
||||
|
@ -107,6 +108,7 @@ $text = array(
|
|||
'backup_log_management' => "Backup/Logging",
|
||||
'between' => "zwischen",
|
||||
'calendar' => "Kalender",
|
||||
'calendar_week' => "Kalenderwoche",
|
||||
'cancel' => "Abbrechen",
|
||||
'cannot_assign_invalid_state' => "Die Zuweisung eines neuen Prüfers zu einem Dokument, welches noch nachbearbeitet oder überprüft wird ist nicht möglich",
|
||||
'cannot_change_final_states' => "Warnung: Nicht imstande, Dokumentstatus für Dokumente, die zurückgewiesen worden sind, oder als abgelaufen bzw. überholt markiert wurden zu ändern",
|
||||
|
@ -762,6 +764,8 @@ $text = array(
|
|||
'settings_updateDatabase' => "Datenbank-Update-Skript ausführen",
|
||||
'settings_updateNotifyTime_desc' => "Users are notified about document-changes that took place within the last 'Update Notify Time' seconds",
|
||||
'settings_updateNotifyTime' => "Update Notify Time",
|
||||
'settings_undelUserIds_desc' => "Komma-separierte Liste von Benutzer-IDs, die nicht gelöscht werden können.",
|
||||
'settings_undelUserIds' => "Nicht löschbare Benutzer-IDs",
|
||||
'settings_versioningFileName_desc' => "Der Name der Datei mit Versionsinformationen, wie sie durch das Backup-Tool erzeugt werden.",
|
||||
'settings_versioningFileName' => "Versionsinfo-Datei",
|
||||
'settings_viewOnlineFileTypes_desc' => "Dateien mit den angegebenen Endungen können Online angeschaut werden (benutzen Sie ausschließlich Kleinbuchstaben).",
|
||||
|
@ -776,6 +780,16 @@ $text = array(
|
|||
'sign_out' => "Abmelden",
|
||||
'sign_out_user' => "Benutzer abmelden",
|
||||
'space_used_on_data_folder' => "Benutzter Plattenplatz",
|
||||
'splash_added_to_clipboard' => "Der Zwischenablage hinzugefügt",
|
||||
'splash_document_edited' => "Dokument gespeichert",
|
||||
'splash_document_locked' => "Dokument gesperrt",
|
||||
'splash_document_unlocked' => "Dokumentensperre aufgehoben",
|
||||
'splash_folder_edited' => "Änderungen am Ordner gespeichert",
|
||||
'splash_invalid_folder_id' => "Ungültige Ordner-ID",
|
||||
'splash_removed_from_clipboard' => "Von der Zwischenablage entfernt",
|
||||
'splash_settings_saved' => "Einstellungen gesichert",
|
||||
'splash_substituted_user' => "Benutzer gewechselt",
|
||||
'splash_switched_back_user' => "Zum ursprünglichen Benutzer zurückgekehrt",
|
||||
'status_approval_rejected' => "Entwurf abgelehnt",
|
||||
'status_approved' => "freigegeben",
|
||||
'status_approver_removed' => "Freigebender wurde vom Prozess ausgeschlossen",
|
||||
|
@ -793,6 +807,7 @@ $text = array(
|
|||
'submit_password_forgotten' => "Neues Passwort setzen und per E-Mail schicken",
|
||||
'submit_review' => "Überprüfung hinzufügen",
|
||||
'submit_userinfo' => "Daten setzen",
|
||||
'substitute_user' => "Benutzer wechseln",
|
||||
'sunday' => "Sonntag",
|
||||
'sunday_abbr' => "So",
|
||||
'switched_to' => "Gewechselt zu",
|
||||
|
@ -831,6 +846,7 @@ $text = array(
|
|||
'uploaded_by' => "Hochgeladen durch",
|
||||
'uploading_failed' => "Das Hochladen einer Datei ist fehlgeschlagen. Bitte überprüfen Sie die maximale Dateigröße für Uploads.",
|
||||
'uploading_zerosize' => "Versuch eine leere Datei hochzuladen. Vorgang wird abgebrochen.",
|
||||
'use_comment_of_document' => "Verwende Kommentar des Dokuments",
|
||||
'use_default_categories' => "Kategorievorlagen",
|
||||
'use_default_keywords' => "Stichwortvorlagen",
|
||||
'used_discspace' => "Verbrauchter Speicherplatz",
|
||||
|
|
|
@ -85,6 +85,7 @@ $text = array(
|
|||
'assign_reviewers' => "Assign Reviewers",
|
||||
'assign_user_property_to' => "Assign user's properties to",
|
||||
'assumed_released' => "Assumed released",
|
||||
'attr_no_regex_match' => "The attribute value does not match the regular expression",
|
||||
'attrdef_management' => "Attribute definition management",
|
||||
'attrdef_exists' => "Attribute definition already exists",
|
||||
'attrdef_in_use' => "Attribute definition still in use",
|
||||
|
@ -94,6 +95,7 @@ $text = array(
|
|||
'attrdef_type' => "Type",
|
||||
'attrdef_minvalues' => "Min. number of values",
|
||||
'attrdef_maxvalues' => "Max. number of values",
|
||||
'attrdef_regex' => "Regular expression",
|
||||
'attrdef_valueset' => "Set of values",
|
||||
'attribute_changed_email_subject' => "[sitename]: [name] - Attribute changed",
|
||||
'attribute_changed_email_body' => "Attribute changed\r\nDocument: [name]\r\nVersion: [version]\r\nAttribute: [attribute]\r\nParent folder: [folder_path]\r\nUser: [username]\r\nURL: [url]",
|
||||
|
@ -112,6 +114,7 @@ $text = array(
|
|||
'cancel' => "Cancel",
|
||||
'cannot_assign_invalid_state' => "Cannot modify an obsolete or rejected document",
|
||||
'cannot_change_final_states' => "Warning: You cannot alter status for document rejected, expired or with pending review or approval",
|
||||
'cannot_delete_user' => "Cannot delete user",
|
||||
'cannot_delete_yourself' => "Cannot delete yourself",
|
||||
'cannot_move_root' => "Error: Cannot move root folder.",
|
||||
'cannot_retrieve_approval_snapshot' => "Unable to retrieve approval status snapshot for this document version.",
|
||||
|
@ -766,6 +769,8 @@ $text = array(
|
|||
'settings_updateDatabase' => "Run schema update scripts on database",
|
||||
'settings_updateNotifyTime_desc' => "Users are notified about document-changes that took place within the last 'Update Notify Time' seconds",
|
||||
'settings_updateNotifyTime' => "Update Notify Time",
|
||||
'settings_undelUserIds_desc' => "Comma separated list of user ids, that cannot be deleted.",
|
||||
'settings_undelUserIds' => "Undeletable User IDs",
|
||||
'settings_versioningFileName_desc' => "The name of the versioning info file created by the backup tool",
|
||||
'settings_versioningFileName' => "Versioning FileName",
|
||||
'settings_viewOnlineFileTypes_desc' => "Files with one of the following endings can be viewed online (USE ONLY LOWER CASE CHARACTERS)",
|
||||
|
@ -846,6 +851,7 @@ $text = array(
|
|||
'uploaded_by' => "Uploaded by",
|
||||
'uploading_failed' => "Uploading one of your files failed. Please check your maximum upload file size.",
|
||||
'uploading_zerosize' => "Uploading an empty file. Upload is canceled.",
|
||||
'use_comment_of_document' => "Use comment of document",
|
||||
'use_default_categories' => "Use predefined categories",
|
||||
'use_default_keywords' => "Use predefined keywords",
|
||||
'used_discspace' => "Used disk space",
|
||||
|
|
|
@ -52,6 +52,8 @@ if ($folder->getAccessMode($user) < M_READWRITE) {
|
|||
|
||||
$comment = $_POST["comment"];
|
||||
$version_comment = $_POST["version_comment"];
|
||||
if($version_comment == "" && isset($_POST["use_comment"]))
|
||||
$version_comment = $comment;
|
||||
|
||||
$keywords = $_POST["keywords"];
|
||||
$categories = isset($_POST["categories"]) ? $_POST["categories"] : null;
|
||||
|
@ -59,10 +61,32 @@ if(isset($_POST["attributes"]))
|
|||
$attributes = $_POST["attributes"];
|
||||
else
|
||||
$attributes = array();
|
||||
foreach($attributes as $attrdefid=>$attribute) {
|
||||
$attrdef = $dms->getAttributeDefinition($attrdefid);
|
||||
if($attribute) {
|
||||
if($attrdef->getRegex()) {
|
||||
if(!preg_match($attrdef->getRegex(), $attribute)) {
|
||||
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("attr_no_regex_match"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($_POST["attributes_version"]))
|
||||
$attributes_version = $_POST["attributes_version"];
|
||||
else
|
||||
$attributes_version = array();
|
||||
foreach($attributes_version as $attrdefid=>$attribute) {
|
||||
$attrdef = $dms->getAttributeDefinition($attrdefid);
|
||||
if($attribute) {
|
||||
if($attrdef->getRegex()) {
|
||||
if(!preg_match($attrdef->getRegex(), $attribute)) {
|
||||
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("attr_no_regex_match"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(isset($_POST["workflow"]))
|
||||
$workflow = $dms->getWorkflow($_POST["workflow"]);
|
||||
|
|
|
@ -49,11 +49,11 @@ if ($public && ($document->getAccessMode($user) == M_READ)) {
|
|||
$public = false;
|
||||
}
|
||||
|
||||
if (!isset($_GET["docidform1"]) || !is_numeric($_GET["docidform1"]) || intval($_GET["docidform1"])<1) {
|
||||
if (!isset($_GET["docid"]) || !is_numeric($_GET["docid"]) || intval($_GET["docid"])<1) {
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_target_doc_id"));
|
||||
}
|
||||
|
||||
$docid = $_GET["docidform1"];
|
||||
$docid = $_GET["docid"];
|
||||
$doc = $dms->getDocument($docid);
|
||||
|
||||
if (!is_object($doc)) {
|
||||
|
|
|
@ -60,6 +60,17 @@ if(isset($_POST["attributes"]))
|
|||
$attributes = $_POST["attributes"];
|
||||
else
|
||||
$attributes = array();
|
||||
foreach($attributes as $attrdefid=>$attribute) {
|
||||
$attrdef = $dms->getAttributeDefinition($attrdefid);
|
||||
if($attribute) {
|
||||
if($attrdef->getRegex()) {
|
||||
if(!preg_match($attrdef->getRegex(), $attribute)) {
|
||||
UI::exitError(getMLText("folder_title", array("foldername" => $document->getName())),getMLText("attr_no_regex_match"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$subFolder = $folder->addSubFolder($name, $comment, $user, $sequence, $attributes);
|
||||
|
||||
if (is_object($subFolder)) {
|
||||
|
|
|
@ -50,6 +50,7 @@ if ($action == "addattrdef") {
|
|||
$minvalues = intval($_POST["minvalues"]);
|
||||
$maxvalues = intval($_POST["maxvalues"]);
|
||||
$valueset = trim($_POST["valueset"]);
|
||||
$regex = trim($_POST["regex"]);
|
||||
|
||||
if($name == '') {
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("attrdef_noname"));
|
||||
|
@ -57,7 +58,7 @@ if ($action == "addattrdef") {
|
|||
if (is_object($dms->getAttributeDefinitionByName($name))) {
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("attrdef_exists"));
|
||||
}
|
||||
$newAttrdef = $dms->addAttributeDefinition($name, $objtype, $type, $multiple, $minvalues, $maxvalues, $valueset);
|
||||
$newAttrdef = $dms->addAttributeDefinition($name, $objtype, $type, $multiple, $minvalues, $maxvalues, $valueset, $regex);
|
||||
if (!$newAttrdef) {
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("error_occured"));
|
||||
}
|
||||
|
@ -114,6 +115,7 @@ else if ($action == "editattrdef") {
|
|||
$minvalues = intval($_POST["minvalues"]);
|
||||
$maxvalues = intval($_POST["maxvalues"]);
|
||||
$valueset = trim($_POST["valueset"]);
|
||||
$regex = trim($_POST["regex"]);
|
||||
if (!$attrdef->setName($name)) {
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("error_occured"));
|
||||
}
|
||||
|
@ -135,6 +137,9 @@ else if ($action == "editattrdef") {
|
|||
if (!$attrdef->setValueSet($valueset)) {
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("error_occured"));
|
||||
}
|
||||
if (!$attrdef->setRegex($regex)) {
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("error_occured"));
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
|
|
|
@ -62,31 +62,19 @@ $attributes = $_POST["attributes"];
|
|||
if($attributes) {
|
||||
$oldattributes = $version->getAttributes();
|
||||
foreach($attributes as $attrdefid=>$attribute) {
|
||||
$attrdef = $dms->getAttributeDefinition($attrdefid);
|
||||
if($attribute) {
|
||||
if($attrdef->getRegex()) {
|
||||
if(!preg_match($attrdef->getRegex(), $attribute)) {
|
||||
UI::exitError(getMLText("folder_title", array("foldername" => $document->getName())),getMLText("attr_no_regex_match"));
|
||||
}
|
||||
}
|
||||
if(!isset($oldattributes[$attrdefid]) || $attribute != $oldattributes[$attrdefid]->getValue()) {
|
||||
if(!$version->setAttributeValue($dms->getAttributeDefinition($attrdefid), $attribute)) {
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured"));
|
||||
} else {
|
||||
if($notifier) {
|
||||
$notifyList = $document->getNotifyList();
|
||||
/*
|
||||
$subject = "###SITENAME###: ".$document->getName().", v.".$version->_version." - ".getMLText("attribute_changed_email");
|
||||
$message = getMLText("attribute_changed_email")."\r\n";
|
||||
$message .=
|
||||
getMLText("document").": ".$document->getName()."\r\n".
|
||||
getMLText("version").": ".$version->_version."\r\n".
|
||||
getMLText("attribute").": ".$attribute."\r\n".
|
||||
getMLText("user").": ".$user->getFullName()." <". $user->getEmail() .">\r\n".
|
||||
"URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->getID()."&version=".$version->_version."\r\n";
|
||||
|
||||
if(isset($document->_notifyList["users"])) {
|
||||
$notifier->toList($user, $document->_notifyList["users"], $subject, $message);
|
||||
}
|
||||
if(isset($document->_notifyList["groups"])) {
|
||||
foreach ($document->_notifyList["groups"] as $grp) {
|
||||
$notifier->toGroup($user, $grp, $subject, $message);
|
||||
}
|
||||
}
|
||||
*/
|
||||
$subject = "attribute_changed_email_subject";
|
||||
$message = "attribute_changed_email_body";
|
||||
$params = array();
|
||||
|
@ -110,6 +98,10 @@ if($attributes) {
|
|||
}
|
||||
}
|
||||
}
|
||||
} elseif(isset($oldattributes[$attrdefid])) {
|
||||
if(!$version->removeAttribute($dms->getAttributeDefinition($attrdefid)))
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $folder->getName())),getMLText("error_occured"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -234,10 +234,21 @@ if($categories) {
|
|||
if($attributes) {
|
||||
$oldattributes = $document->getAttributes();
|
||||
foreach($attributes as $attrdefid=>$attribute) {
|
||||
$attrdef = $dms->getAttributeDefinition($attrdefid);
|
||||
if($attribute) {
|
||||
if($attrdef->getRegex()) {
|
||||
if(!preg_match($attrdef->getRegex(), $attribute)) {
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("attr_no_regex_match"));
|
||||
}
|
||||
}
|
||||
if(!isset($oldattributes[$attrdefid]) || $attribute != $oldattributes[$attrdefid]->getValue()) {
|
||||
if(!$document->setAttributeValue($dms->getAttributeDefinition($attrdefid), $attribute))
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured"));
|
||||
}
|
||||
} elseif(isset($oldattributes[$attrdefid])) {
|
||||
if(!$document->removeAttribute($dms->getAttributeDefinition($attrdefid)))
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -156,10 +156,21 @@ if(($oldcomment = $folder->getComment()) != $comment) {
|
|||
if($attributes) {
|
||||
$oldattributes = $folder->getAttributes();
|
||||
foreach($attributes as $attrdefid=>$attribute) {
|
||||
$attrdef = $dms->getAttributeDefinition($attrdefid);
|
||||
if($attribute) {
|
||||
if($attrdef->getRegex()) {
|
||||
if(!preg_match($attrdef->getRegex(), $attribute)) {
|
||||
UI::exitError(getMLText("folder_title", array("foldername" => $document->getName())),getMLText("attr_no_regex_match"));
|
||||
}
|
||||
}
|
||||
if(!isset($oldattributes[$attrdefid]) || $attribute != $oldattributes[$attrdefid]->getValue()) {
|
||||
if(!$folder->setAttributeValue($dms->getAttributeDefinition($attrdefid), $attribute))
|
||||
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("error_occured"));
|
||||
}
|
||||
} elseif(isset($oldattributes[$attrdefid])) {
|
||||
if(!$folder->removeAttribute($dms->getAttributeDefinition($attrdefid)))
|
||||
UI::exitError(getMLText("folder_title", array("foldername" => $folder->getName())),getMLText("error_occured"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -311,7 +311,10 @@ else if ($action == "setdefault") {
|
|||
$message = "access_permission_changed_email_body";
|
||||
$params = array();
|
||||
$params['name'] = $folder->getName();
|
||||
if($folder->getParent())
|
||||
$params['folder_path'] = $folder->getParent()->getFolderPathPlain();
|
||||
else
|
||||
$params['folder_path'] = $folder->getFolderPathPlain();
|
||||
$params['username'] = $user->getFullName();
|
||||
$params['url'] = "http".((isset($_SERVER['HTTPS']) && (strcmp($_SERVER['HTTPS'],'off')!=0)) ? "s" : "")."://".$_SERVER['HTTP_HOST'].$settings->_httpRoot."out/out.ViewFolder.php?folderid=".$folder->getID();
|
||||
$params['sitename'] = $settings->_siteName;
|
||||
|
|
|
@ -63,8 +63,8 @@ $userid=$user->getID();
|
|||
if ($_GET["type"]=="document"){
|
||||
|
||||
if ($_GET["action"]=="add"){
|
||||
if (!isset($_POST["docidform1"])) UI::exitError(getMLText("my_account"),getMLText("error_occured"));
|
||||
$documentid = $_POST["docidform1"];
|
||||
if (!isset($_POST["docid"])) UI::exitError(getMLText("my_account"),getMLText("error_occured"));
|
||||
$documentid = $_POST["docid"];
|
||||
}else if ($_GET["action"]=="del"){
|
||||
if (!isset($_GET["id"])) UI::exitError(getMLText("my_account"),getMLText("error_occured"));
|
||||
$documentid = $_GET["id"];
|
||||
|
|
|
@ -114,6 +114,7 @@ if ($_POST["reviewType"] == "ind") {
|
|||
$params['status'] = getReviewStatusText($_POST["reviewStatus"]);
|
||||
$params['comment'] = $comment;
|
||||
$params['username'] = $user->getFullName();
|
||||
$params['url'] = "http".((isset($_SERVER['HTTPS']) && (strcmp($_SERVER['HTTPS'],'off')!=0)) ? "s" : "")."://".$_SERVER['HTTP_HOST'].$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID();
|
||||
$params['sitename'] = $settings->_siteName;
|
||||
$params['http_root'] = $settings->_httpRoot;
|
||||
$notifier->toList($user, $nl["users"], $subject, $message, $params);
|
||||
|
|
|
@ -105,6 +105,7 @@ if ($action == "saveSettings")
|
|||
$settings->_passwordHistory = intval($_POST["passwordHistory"]);
|
||||
$settings->_loginFailure = intval($_POST["loginFailure"]);
|
||||
$settings->_quota = intval($_POST["quota"]);
|
||||
$settings->_undelUserIds = strval($_POST["undelUserIds"]);
|
||||
$settings->_encryptionKey = strval($_POST["encryptionKey"]);
|
||||
$settings->_cookieLifetime = intval($_POST["cookieLifetime"]);
|
||||
|
||||
|
|
|
@ -169,6 +169,16 @@ if ($_FILES['userfile']['error'] == 0) {
|
|||
}
|
||||
|
||||
$attributes = $_POST["attributes"];
|
||||
foreach($attributes as $attrdefid=>$attribute) {
|
||||
$attrdef = $dms->getAttributeDefinition($attrdefid);
|
||||
if($attribute) {
|
||||
if($attrdef->getRegex()) {
|
||||
if(!preg_match($attrdef->getRegex(), $attribute)) {
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $folder->getName())),getMLText("attr_no_regex_match"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$contentResult=$document->addContent($comment, $user, $userfiletmp, basename($userfilename), $fileType, $userfiletype, $reviewers, $approvers, $version=0, $attributes);
|
||||
if (is_bool($contentResult) && !$contentResult) {
|
||||
|
|
|
@ -135,6 +135,10 @@ else if ($action == "removeuser") {
|
|||
UI::exitError(getMLText("admin_tools"),getMLText("invalid_user_id"));
|
||||
}
|
||||
|
||||
if(in_array($userid, explode(',', $settings->_undelUserIds))) {
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("cannot_delete_user"));
|
||||
}
|
||||
|
||||
/* This used to be a check if an admin is deleted. Now it checks if one
|
||||
* wants to delete herself.
|
||||
*/
|
||||
|
|
|
@ -33,15 +33,18 @@ if (!isset($_GET["userid"]) || !is_numeric($_GET["userid"]) || intval($_GET["use
|
|||
}
|
||||
|
||||
$rmuser = $dms->getUser(intval($_GET["userid"]));
|
||||
|
||||
if ($rmuser->getID()==$user->getID()) {
|
||||
UI::exitError(getMLText("rm_user"),getMLText("access_denied"));
|
||||
}
|
||||
|
||||
if (!is_object($rmuser)) {
|
||||
UI::exitError(getMLText("rm_user"),getMLText("invalid_user_id"));
|
||||
}
|
||||
|
||||
if(in_array($rmuser->getID(), explode(',', $settings->_undelUserIds))) {
|
||||
UI::exitError(getMLText("rm_user"),getMLText("cannot_delete_user"));
|
||||
}
|
||||
|
||||
if ($rmuser->getID()==$user->getID()) {
|
||||
UI::exitError(getMLText("rm_user"),getMLText("cannot_delete_yourself"));
|
||||
}
|
||||
|
||||
$allusers = $dms->getAllUsers($settings->_sortUsersInList);
|
||||
|
||||
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
|
||||
|
|
|
@ -45,7 +45,7 @@ if(isset($_GET['userid']) && $_GET['userid']) {
|
|||
}
|
||||
|
||||
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
|
||||
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'seluser'=>$seluser, 'allusers'=>$users, 'allgroups'=>$groups, 'passwordstrength'=>$settings->_passwordStrength, 'passwordexpiration'=>$settings->_passwordExpiration, 'httproot'=>$settings->_httpRoot, 'enableuserimage'=>$settings->_enableUserImage, 'workflowmode'=>$settings->_workflowMode));
|
||||
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'seluser'=>$seluser, 'allusers'=>$users, 'allgroups'=>$groups, 'passwordstrength'=>$settings->_passwordStrength, 'passwordexpiration'=>$settings->_passwordExpiration, 'httproot'=>$settings->_httpRoot, 'enableuserimage'=>$settings->_enableUserImage, 'undeluserids'=>explode(',', $settings->_undelUserIds), 'workflowmode'=>$settings->_workflowMode));
|
||||
if($view) {
|
||||
$view->show();
|
||||
exit;
|
||||
|
|
983
styles/bootstrap/font-awesome/css/font-awesome-ie7.css
vendored
Normal file
|
@ -0,0 +1,983 @@
|
|||
/*!
|
||||
* Font Awesome 3.1.0
|
||||
* the iconic font designed for Bootstrap
|
||||
* -------------------------------------------------------
|
||||
* The full suite of pictographic icons, examples, and documentation
|
||||
* can be found at: http://fontawesome.io
|
||||
*
|
||||
* License
|
||||
* -------------------------------------------------------
|
||||
* - The Font Awesome font is licensed under the SIL Open Font License v1.1 -
|
||||
* http://scripts.sil.org/OFL
|
||||
* - Font Awesome CSS, LESS, and SASS files are licensed under the MIT License -
|
||||
* http://opensource.org/licenses/mit-license.html
|
||||
* - Font Awesome documentation licensed under CC BY 3.0 License -
|
||||
* http://creativecommons.org/licenses/by/3.0/
|
||||
* - Attribution is no longer required in Font Awesome 3.0, but much appreciated:
|
||||
* "Font Awesome by Dave Gandy - http://fontawesome.io"
|
||||
|
||||
* Contact
|
||||
* -------------------------------------------------------
|
||||
* Email: dave@fontawesome.io
|
||||
* Twitter: http://twitter.com/fortaweso_me
|
||||
* Work: Lead Product Designer @ http://kyruus.com
|
||||
*/
|
||||
.icon-large {
|
||||
font-size: 1.3333333333333333em;
|
||||
margin-top: -4px;
|
||||
padding-top: 3px;
|
||||
margin-bottom: -4px;
|
||||
padding-bottom: 3px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.nav [class^="icon-"],
|
||||
.nav [class*=" icon-"] {
|
||||
vertical-align: inherit;
|
||||
margin-top: -4px;
|
||||
padding-top: 3px;
|
||||
margin-bottom: -4px;
|
||||
padding-bottom: 3px;
|
||||
}
|
||||
.nav [class^="icon-"].icon-large,
|
||||
.nav [class*=" icon-"].icon-large {
|
||||
vertical-align: -25%;
|
||||
}
|
||||
.nav-pills [class^="icon-"].icon-large,
|
||||
.nav-tabs [class^="icon-"].icon-large,
|
||||
.nav-pills [class*=" icon-"].icon-large,
|
||||
.nav-tabs [class*=" icon-"].icon-large {
|
||||
line-height: .75em;
|
||||
margin-top: -7px;
|
||||
padding-top: 5px;
|
||||
margin-bottom: -5px;
|
||||
padding-bottom: 4px;
|
||||
}
|
||||
ul.icons-ul {
|
||||
text-indent: -1em;
|
||||
margin-left: 2.142857142857143em;
|
||||
}
|
||||
ul.icons-ul > li .icon-li {
|
||||
width: 1em;
|
||||
margin-right: 0;
|
||||
}
|
||||
.btn [class^="icon-"].pull-left,
|
||||
.btn [class*=" icon-"].pull-left,
|
||||
.btn [class^="icon-"].pull-right,
|
||||
.btn [class*=" icon-"].pull-right {
|
||||
vertical-align: inherit;
|
||||
}
|
||||
.btn [class^="icon-"].icon-large,
|
||||
.btn [class*=" icon-"].icon-large {
|
||||
margin-top: -0.5em;
|
||||
}
|
||||
a [class^="icon-"],
|
||||
a [class*=" icon-"] {
|
||||
cursor: pointer;
|
||||
}
|
||||
.icon-glass {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-music {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-search {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-envelope {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-heart {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-star {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-star-empty {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-user {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-film {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-th-large {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-th {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-th-list {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-ok {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-remove {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-zoom-in {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-zoom-out {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-off {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-signal {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-cog {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-trash {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-home {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-file {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-time {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-road {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-download-alt {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-download {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-upload {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-inbox {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-play-circle {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-repeat {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-refresh {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-list-alt {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-lock {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-flag {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-headphones {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-volume-off {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-volume-down {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-volume-up {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-qrcode {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-barcode {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-tag {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-tags {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-book {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-bookmark {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-print {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-camera {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-font {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-bold {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-italic {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-text-height {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-text-width {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-align-left {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-align-center {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-align-right {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-align-justify {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-list {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-indent-left {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-indent-right {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-facetime-video {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-picture {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-pencil {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-map-marker {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-adjust {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-tint {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-edit {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-share {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-check {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-move {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-step-backward {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-fast-backward {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-backward {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-play {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-pause {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-stop {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-forward {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-fast-forward {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-step-forward {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-eject {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-chevron-left {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-chevron-right {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-plus-sign {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-minus-sign {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-remove-sign {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-ok-sign {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-question-sign {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-info-sign {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-screenshot {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-remove-circle {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-ok-circle {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-ban-circle {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-arrow-left {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-arrow-right {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-arrow-up {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-arrow-down {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-share-alt {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-resize-full {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-resize-small {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-plus {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-minus {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-asterisk {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-exclamation-sign {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-gift {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-leaf {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-fire {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-eye-open {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-eye-close {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-warning-sign {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-plane {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-calendar {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-random {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-comment {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-magnet {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-chevron-up {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-chevron-down {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-retweet {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-shopping-cart {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-folder-close {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-folder-open {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-resize-vertical {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-resize-horizontal {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-bar-chart {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-twitter-sign {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-facebook-sign {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-camera-retro {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-key {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-cogs {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-comments {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-thumbs-up {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-thumbs-down {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-star-half {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-heart-empty {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-signout {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-linkedin-sign {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-pushpin {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-external-link {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-signin {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-trophy {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-github-sign {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-upload-alt {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-lemon {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-phone {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-check-empty {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-bookmark-empty {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-phone-sign {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-twitter {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-facebook {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-github {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-unlock {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-credit-card {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-rss {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-hdd {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-bullhorn {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-bell {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-certificate {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-hand-right {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-hand-left {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-hand-up {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-hand-down {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-circle-arrow-left {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-circle-arrow-right {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-circle-arrow-up {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-circle-arrow-down {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-globe {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-wrench {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-tasks {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-filter {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-briefcase {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-fullscreen {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-group {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-link {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-cloud {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-beaker {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-cut {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-copy {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-paper-clip {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-save {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-sign-blank {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-reorder {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-list-ul {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-list-ol {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-strikethrough {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-underline {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-table {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-magic {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-truck {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-pinterest {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-pinterest-sign {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-google-plus-sign {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-google-plus {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-money {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-caret-down {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-caret-up {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-caret-left {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-caret-right {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-columns {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-sort {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-sort-down {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-sort-up {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-envelope-alt {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-linkedin {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-undo {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-legal {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-dashboard {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-comment-alt {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-comments-alt {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-bolt {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-sitemap {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-umbrella {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-paste {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-lightbulb {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-exchange {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-cloud-download {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-cloud-upload {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-user-md {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-stethoscope {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-suitcase {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-bell-alt {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-coffee {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-food {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-file-alt {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-building {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-hospital {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-ambulance {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-medkit {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-fighter-jet {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-beer {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-h-sign {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-plus-sign-alt {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-double-angle-left {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-double-angle-right {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-double-angle-up {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-double-angle-down {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-angle-left {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-angle-right {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-angle-up {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-angle-down {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-desktop {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-laptop {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-tablet {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-mobile-phone {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-circle-blank {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-quote-left {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-quote-right {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-spinner {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-circle {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-reply {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-folder-close-alt {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-folder-open-alt {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-expand-alt {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-collapse-alt {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-smile {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-frown {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-meh {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-gamepad {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-keyboard {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-flag-alt {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-flag-checkered {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-terminal {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-code {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-reply-all {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-mail-reply-all {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-star-half-full,
|
||||
.icon-star-half-empty {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-location-arrow {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-crop {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-code-fork {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-unlink {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-question {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-info {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-exclamation {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-superscript {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-subscript {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-eraser {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-puzzle-piece {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-microphone {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-microphone-off {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-shield {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-calendar-empty {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-fire-extinguisher {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-rocket {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-maxcdn {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-chevron-sign-left {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-chevron-sign-right {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-chevron-sign-up {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-chevron-sign-down {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-html5 {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-css3 {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-anchor {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-unlock-alt {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-bullseye {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-ellipsis-horizontal {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-ellipsis-vertical {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-rss-sign {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-play-sign {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-ticket {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-minus-sign-alt {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-check-minus {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-level-up {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-level-down {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-check-sign {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-edit-sign {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-external-link-sign {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
||||
.icon-share-sign {
|
||||
*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
|
||||
}
|
21
utils/README.md
Normal file
|
@ -0,0 +1,21 @@
|
|||
Running one of the scripts
|
||||
---------------------------
|
||||
|
||||
Scripts in this folder are ment to be called on the command line by
|
||||
either executing one of the shell wrappers 'seeddms-*' or by calling
|
||||
'php -f <scriptname> -- <script options>'.
|
||||
If you run the adddoc.php script make sure to run in with the permissions
|
||||
of the user running your web server. I will copy files right into
|
||||
your content directory of your SeedDMS installation. Don't do this
|
||||
as root because you will most likely not be able to remove those documents
|
||||
from the web gui. If this happens by accident, you will still be able
|
||||
to fix it manually by setting the propper file permissions for the document
|
||||
just created in your content directory. Just change the owner of the
|
||||
document folder and its content to the user running the web server.
|
||||
|
||||
Do not allow regular users to run this scripts!
|
||||
-----------------------------------------------
|
||||
|
||||
None of the scripts do any authentication. They all run with a SeedDMS
|
||||
admin account! So anybody being allowed to run the scripts can modify
|
||||
your DMS content.
|
|
@ -130,8 +130,13 @@ $db->connect() or die ("Could not connect to db-server \"" . $settings->_dbHostn
|
|||
|
||||
|
||||
$dms = new SeedDMS_Core_DMS($db, $settings->_contentDir.$settings->_contentOffsetDir);
|
||||
if(!$dms->checkVersion()) {
|
||||
echo "Database update needed.";
|
||||
exit;
|
||||
}
|
||||
|
||||
$dms->setRootFolderID($settings->_rootFolderID);
|
||||
$dms->setEnableAdminRevApp($settings->_enableAdminRevApp);
|
||||
$dms->setMaxDirID($settings->_maxDirID);
|
||||
$dms->setEnableConverting($settings->_enableConverting);
|
||||
$dms->setViewOnlineFileTypes($settings->_viewOnlineFileTypes);
|
||||
|
||||
|
|
|
@ -75,14 +75,16 @@ if(isset($options['n'])) {
|
|||
|
||||
$db = new SeedDMS_Core_DatabaseAccess($settings->_dbDriver, $settings->_dbHostname, $settings->_dbUser, $settings->_dbPass, $settings->_dbDatabase);
|
||||
$db->connect() or die ("Could not connect to db-server \"" . $settings->_dbHostname . "\"");
|
||||
$db->_conn->debug = 1;
|
||||
|
||||
//$db->_conn->debug = 1;
|
||||
|
||||
$dms = new SeedDMS_Core_DMS($db, $settings->_contentDir.$settings->_contentOffsetDir);
|
||||
if(!$dms->checkVersion()) {
|
||||
echo "Database update needed.";
|
||||
exit;
|
||||
}
|
||||
|
||||
$dms->setRootFolderID($settings->_rootFolderID);
|
||||
$dms->setGuestID($settings->_guestID);
|
||||
$dms->setEnableGuestLogin($settings->_enableGuestLogin);
|
||||
$dms->setEnableAdminRevApp($settings->_enableAdminRevApp);
|
||||
$dms->setMaxDirID($settings->_maxDirID);
|
||||
$dms->setEnableConverting($settings->_enableConverting);
|
||||
$dms->setViewOnlineFileTypes($settings->_viewOnlineFileTypes);
|
||||
|
||||
|
|
|
@ -77,6 +77,11 @@ $db = new SeedDMS_Core_DatabaseAccess($settings->_dbDriver, $settings->_dbHostna
|
|||
$db->connect() or die ("Could not connect to db-server \"" . $settings->_dbHostname . "\"");
|
||||
|
||||
$dms = new SeedDMS_Core_DMS($db, $settings->_contentDir.$settings->_contentOffsetDir);
|
||||
if(!$dms->checkVersion()) {
|
||||
echo "Database update needed.";
|
||||
exit;
|
||||
}
|
||||
|
||||
$dms->setRootFolderID($settings->_rootFolderID);
|
||||
|
||||
$index = Zend_Search_Lucene::create($settings->_luceneDir);
|
||||
|
|
|
@ -13,6 +13,7 @@ function usage() { /* {{{ */
|
|||
echo " -v, --version: print version and exit.\n";
|
||||
echo " --config: set alternative config file.\n";
|
||||
echo " --folder: set start folder.\n";
|
||||
echo " --maxsize: maximum size of files to be include in output.\n";
|
||||
} /* }}} */
|
||||
|
||||
function wrapWithCData($text) { /* {{{ */
|
||||
|
@ -24,7 +25,7 @@ function wrapWithCData($text) { /* {{{ */
|
|||
|
||||
$version = "0.0.1";
|
||||
$shortoptions = "hv";
|
||||
$longoptions = array('help', 'version', 'config:', 'folder:');
|
||||
$longoptions = array('help', 'version', 'config:', 'folder:', 'maxsize:');
|
||||
if(false === ($options = getopt($shortoptions, $longoptions))) {
|
||||
usage();
|
||||
exit(0);
|
||||
|
@ -49,6 +50,13 @@ if(isset($options['config'])) {
|
|||
$settings = new Settings();
|
||||
}
|
||||
|
||||
/* Set maximum size of files included in xml file */
|
||||
if(isset($options['maxsize'])) {
|
||||
$maxsize = intval($maxsize);
|
||||
} else {
|
||||
$maxsize = 100000;
|
||||
}
|
||||
|
||||
if(isset($settings->_extraPath))
|
||||
ini_set('include_path', $settings->_extraPath. PATH_SEPARATOR .ini_get('include_path'));
|
||||
|
||||
|
@ -250,6 +258,11 @@ function tree($folder, $parent=null, $indent='') { /* {{{ */
|
|||
echo $indent." <attr name=\"owner\">".$owner->getId()."</attr>\n";
|
||||
echo $indent." <attr name=\"comment\">".wrapWithCData($file->getComment())."</attr>\n";
|
||||
echo $indent." <attr name=\"orgfilename\">".wrapWithCData($file->getOriginalFileName())."</attr>\n";
|
||||
echo $indent." <data length=\"".filesize($dms->contentDir . $file->getPath())."\">\n";
|
||||
if(filesize($dms->contentDir . $file->getPath()) < 1000000) {
|
||||
echo chunk_split(base64_encode(file_get_contents($dms->contentDir . $file->getPath())), 76, "\n");
|
||||
}
|
||||
echo $indent." </data>\n";
|
||||
echo $indent." </file>\n";
|
||||
}
|
||||
echo $indent." </files>\n";
|
||||
|
@ -299,6 +312,11 @@ $db = new SeedDMS_Core_DatabaseAccess($settings->_dbDriver, $settings->_dbHostna
|
|||
$db->connect() or die ("Could not connect to db-server \"" . $settings->_dbHostname . "\"");
|
||||
|
||||
$dms = new SeedDMS_Core_DMS($db, $settings->_contentDir.$settings->_contentOffsetDir);
|
||||
if(!$dms->checkVersion()) {
|
||||
echo "Database update needed.";
|
||||
exit;
|
||||
}
|
||||
|
||||
$dms->setRootFolderID($settings->_rootFolderID);
|
||||
|
||||
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
|
||||
|
@ -404,7 +422,7 @@ if($attrdefs) {
|
|||
}
|
||||
echo "\">\n";
|
||||
echo " <attr name=\"name\">".$attrdef->getName()."</attr>\n";
|
||||
echo " <attr name=\"multiple\">".$attrdef->hasMultipleValues()."</attr>\n";
|
||||
echo " <attr name=\"multiple\">".$attrdef->getMultipleValues()."</attr>\n";
|
||||
echo " <attr name=\"valueset\">".$attrdef->getValueSet()."</attr>\n";
|
||||
echo " <attr name=\"type\">".$attrdef->getType()."</attr>\n";
|
||||
echo " <attr name=\"minvalues\">".$attrdef->getMinValues()."</attr>\n";
|
||||
|
|
|
@ -1,9 +1,5 @@
|
|||
<?php
|
||||
ini_set('include_path', '.:/usr/share/php:/usr/share/seeddms');
|
||||
|
||||
require_once("inc/inc.ClassSettings.php");
|
||||
require_once("SeedDMS/Core.php");
|
||||
require_once("SeedDMS/Lucene.php");
|
||||
|
||||
function usage() { /* {{{ */
|
||||
echo "Usage:\n";
|
||||
|
@ -446,10 +442,19 @@ if(isset($options['sections'])) {
|
|||
$sections = explode(',', $options['sections']);
|
||||
}
|
||||
|
||||
if(isset($settings->_extraPath))
|
||||
ini_set('include_path', $settings->_extraPath. PATH_SEPARATOR .ini_get('include_path'));
|
||||
|
||||
require_once("SeedDMS/Core.php");
|
||||
|
||||
$db = new SeedDMS_Core_DatabaseAccess($settings->_dbDriver, $settings->_dbHostname, $settings->_dbUser, $settings->_dbPass, $settings->_dbDatabase);
|
||||
$db->connect() or die ("Could not connect to db-server \"" . $settings->_dbHostname . "\"");
|
||||
|
||||
$dms = new SeedDMS_Core_DMS($db, $settings->_contentDir.$settings->_contentOffsetDir);
|
||||
if(!$dms->checkVersion()) {
|
||||
echo "Database update needed.";
|
||||
exit;
|
||||
}
|
||||
$dms->setRootFolderID($settings->_rootFolderID);
|
||||
|
||||
$rootfolder = $dms->getFolder($folderid);
|
||||
|
|
|
@ -38,7 +38,7 @@ class SeedDMS_View_AddMultiDocument extends SeedDMS_Blue_Style {
|
|||
|
||||
$this->htmlStartPage(getMLText("folder_title", array("foldername" => htmlspecialchars($folder->getName()))));
|
||||
$this->globalNavigation($folder);
|
||||
$this->pageNavigation(getFolderPathHTML($folder, true), "view_folder", $folder);
|
||||
$this->pageNavigation($this->getFolderPathHTML($folder, true), "view_folder", $folder);
|
||||
|
||||
?>
|
||||
<script language="JavaScript">
|
||||
|
|
|
@ -40,7 +40,7 @@ class SeedDMS_View_RemoveDocumentFile extends SeedDMS_Blue_Style {
|
|||
|
||||
$this->htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))));
|
||||
$this->globalNavigation($folder);
|
||||
$this->pageNavigation(getFolderPathHTML($folder, true, $document), "view_document");
|
||||
$this->pageNavigation($this->getFolderPathHTML($folder, true, $document), "view_document");
|
||||
$this->contentHeading(getMLText("rm_file"));
|
||||
$this->contentContainerStart();
|
||||
|
||||
|
|
|
@ -162,7 +162,7 @@ function addFiles()
|
|||
<span class="add-on"><i class="icon-calendar"></i></span>
|
||||
</span>
|
||||
<label class="checkbox inline">
|
||||
<input type="checkbox" name="expires" value="false" checked><?php printMLText("does_not_expire");?><br>
|
||||
<input type="checkbox" name="expires" value="false" checked><?php printMLText("does_not_expire");?>
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -193,7 +193,8 @@ function addFiles()
|
|||
<?php } ?>
|
||||
<tr>
|
||||
<td><?php printMLText("comment_for_current_version");?>:</td>
|
||||
<td><textarea name="version_comment" rows="3" cols="80"></textarea></td>
|
||||
<td><textarea name="version_comment" rows="3" cols="80"></textarea><br />
|
||||
<label class="checkbox inline"><input type="checkbox" name="use_comment" value="1" /> <?php printMLText("use_comment_of_document"); ?></label></td>
|
||||
</tr>
|
||||
<?php
|
||||
$attrdefs = $dms->getAllAttributeDefinitions(array(SeedDMS_Core_AttributeDefinition::objtype_documentcontent, SeedDMS_Core_AttributeDefinition::objtype_all));
|
||||
|
|
|
@ -42,7 +42,7 @@ class SeedDMS_View_AddMultiDocument extends SeedDMS_Bootstrap_Style {
|
|||
$this->htmlStartPage(getMLText("folder_title", array("foldername" => htmlspecialchars($folder->getName()))));
|
||||
$this->globalNavigation($folder);
|
||||
$this->contentStart();
|
||||
$this->pageNavigation(getFolderPathHTML($folder, true), "view_folder", $folder);
|
||||
$this->pageNavigation($this->getFolderPathHTML($folder, true), "view_folder", $folder);
|
||||
|
||||
?>
|
||||
<script language="JavaScript">
|
||||
|
|
|
@ -98,9 +98,7 @@ function showAttributeDefinitions(selectObj) {
|
|||
</div>
|
||||
|
||||
<div class="span8">
|
||||
<div class="well">
|
||||
<table class="table-condensed"><tr>
|
||||
<td id="attrdefs0" style="display : none;">
|
||||
<div class="well" id="attrdefs0" style="display : none;">
|
||||
<form action="../op/op.AttributeMgr.php" method="post">
|
||||
<?php echo createHiddenFieldWithKey('addattrdef'); ?>
|
||||
<input type="hidden" name="action" value="addattrdef">
|
||||
|
@ -126,24 +124,25 @@ function showAttributeDefinitions(selectObj) {
|
|||
<tr>
|
||||
<td><?php printMLText("attrdef_valueset");?>:</td><td><input type="text" value="" name="valueset" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php printMLText("attrdef_regex");?>:</td><td><input type="text" value="" name="regex" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td><input type="submit" class="btn" value="<?php printMLText("new_attrdef"); ?>"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</td>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
|
||||
if($attrdefs) {
|
||||
foreach ($attrdefs as $attrdef) {
|
||||
|
||||
print "<td id=\"attrdefs".$attrdef->getID()."\" style=\"display : none;\">";
|
||||
print "<div id=\"attrdefs".$attrdef->getID()."\" style=\"display : none;\">";
|
||||
?>
|
||||
<table class="table-condensed">
|
||||
<tr>
|
||||
<td></td><td>
|
||||
<div class="well">
|
||||
<?php
|
||||
if(!$attrdef->isUsed()) {
|
||||
?>
|
||||
|
@ -155,13 +154,101 @@ function showAttributeDefinitions(selectObj) {
|
|||
</form>
|
||||
<?php
|
||||
} else {
|
||||
?>
|
||||
<p><?php echo getMLText('attrdef_in_use') ?></p>
|
||||
<?php
|
||||
echo '<p>'.getMLText('attrdef_in_use').'</p>';
|
||||
$res = $attrdef->getStatistics(3);
|
||||
if(isset($res['frequencies']) && $res['frequencies']) {
|
||||
print "<table class=\"table-condensed\">";
|
||||
print "<thead>\n<tr>\n";
|
||||
print "<th>".getMLText("count")."</th>\n";
|
||||
print "<th>".getMLText("value")."</th>\n";
|
||||
print "</tr></thead>\n<tbody>\n";
|
||||
foreach($res['frequencies'] as $entry) {
|
||||
echo "<tr><td>".$entry['c']."</td><td>".$entry['value']."</td></tr>";
|
||||
}
|
||||
print "</tbody></table>";
|
||||
}
|
||||
if($res['docs']) {
|
||||
print "<table class=\"table-condensed\">";
|
||||
print "<thead>\n<tr>\n";
|
||||
print "<th></th>\n";
|
||||
print "<th>".getMLText("name")."</th>\n";
|
||||
print "<th>".getMLText("owner")."</th>\n";
|
||||
print "<th>".getMLText("status")."</th>\n";
|
||||
print "<th>".getMLText("value")."</th>\n";
|
||||
print "<th>".getMLText("actions")."</th>\n";
|
||||
print "</tr></thead>\n<tbody>\n";
|
||||
foreach($res['docs'] as $doc) {
|
||||
$owner = $doc->getOwner();
|
||||
$latest = $doc->getLatestContent();
|
||||
$status = $latest->getStatus();
|
||||
print "<tr>\n";
|
||||
print "<td><i class=\"icon-file\"></i></td>";
|
||||
print "<td><a href=\"../out/out.ViewDocument.php?documentid=".$doc->getID()."\">" . htmlspecialchars($doc->getName()) . "</a></td>\n";
|
||||
print "<td>".htmlspecialchars($owner->getFullName())."</td>";
|
||||
print "<td>".getOverallStatusText($status["status"])."</td>";
|
||||
print "<td>".$doc->getAttributeValue($attrdef)."</td>";
|
||||
print "<td>";
|
||||
print "<a href='../out/out.EditDocument.php?documentid=".$doc->getID()."' class=\"btn btn-mini\"><i class=\"icon-edit\"></i> ".getMLText("edit")."</a>";
|
||||
print "</td></tr>\n";
|
||||
}
|
||||
print "</tbody></table>";
|
||||
}
|
||||
|
||||
if($res['folders']) {
|
||||
print "<table class=\"table-condensed\">";
|
||||
print "<thead><tr>\n";
|
||||
print "<th></th>\n";
|
||||
print "<th>".getMLText("name")."</th>\n";
|
||||
print "<th>".getMLText("owner")."</th>\n";
|
||||
print "<th>".getMLText("value")."</th>\n";
|
||||
print "<th>".getMLText("actions")."</th>\n";
|
||||
print "</tr></thead>\n<tbody>\n";
|
||||
foreach($res['folders'] as $folder) {
|
||||
$owner = $folder->getOwner();
|
||||
print "<tr class=\"folder\">";
|
||||
print "<td><i class=\"icon-folder-close-alt\"></i></td>";
|
||||
print "<td><a href=\"../out/out.ViewFolder.php?folderid=".$folder->getID()."\">" . htmlspecialchars($folder->getName()) . "</a></td>\n";
|
||||
print "<td>".htmlspecialchars($owner->getFullName())."</td>";
|
||||
print "<td>".$folder->getAttributeValue($attrdef)."</td>";
|
||||
print "<td>";
|
||||
print "<a href='../out/out.EditFolder.php?folderid=".$folder->getID()."' class=\"btn btn-mini\"><i class=\"icon-edit\"></i> ".getMLText("edit")."</a>";
|
||||
print "</td></tr>";
|
||||
}
|
||||
print "</tbody></table>";
|
||||
}
|
||||
|
||||
if($res['contents']) {
|
||||
print "<table class=\"table-condensed\">";
|
||||
print "<thead>\n<tr>\n";
|
||||
print "<th></th>\n";
|
||||
print "<th>".getMLText("name")."</th>\n";
|
||||
print "<th>".getMLText("owner")."</th>\n";
|
||||
print "<th>".getMLText("mimetype")."</th>\n";
|
||||
print "<th>".getMLText("version")."</th>\n";
|
||||
print "<th>".getMLText("value")."</th>\n";
|
||||
print "<th>".getMLText("actions")."</th>\n";
|
||||
print "</tr></thead>\n<tbody>\n";
|
||||
foreach($res['contents'] as $content) {
|
||||
$doc = $content->getDocument();
|
||||
$owner = $doc->getOwner();
|
||||
print "<tr>\n";
|
||||
print "<td><i class=\"icon-file\"></i></td>";
|
||||
print "<td><a href=\"../out/out.ViewDocument.php?documentid=".$doc->getID()."\">" . htmlspecialchars($doc->getName()) . "</a></td>\n";
|
||||
print "<td>".htmlspecialchars($owner->getFullName())."</td>";
|
||||
print "<td>".$content->getMimeType()."</td>";
|
||||
print "<td>".$content->getVersion()."</td>";
|
||||
print "<td>".$content->getAttributeValue($attrdef)."</td>";
|
||||
print "<td>";
|
||||
print "<a href='../out/out.EditDocument.php?documentid=".$doc->getID()."' class=\"btn btn-mini\"><i class=\"icon-edit\"></i> ".getMLText("edit")."</a>";
|
||||
print "</td></tr>\n";
|
||||
}
|
||||
print "</tbody></table>";
|
||||
}
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
</div>
|
||||
<div class="well">
|
||||
<table class="table-condensed">
|
||||
<form action="../op/op.AttributeMgr.php" method="post">
|
||||
<tr>
|
||||
<td>
|
||||
|
@ -222,6 +309,14 @@ function showAttributeDefinitions(selectObj) {
|
|||
<input type="text" value="<?php echo $attrdef->getValueSet() ?>" name="valueset" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?php printMLText("attrdef_regex");?>:
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" value="<?php echo $attrdef->getRegex() ?>" name="regex" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
|
@ -231,12 +326,12 @@ function showAttributeDefinitions(selectObj) {
|
|||
</form>
|
||||
|
||||
</table>
|
||||
</td>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
?>
|
||||
</tr></table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -706,7 +706,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
|
|||
} /* }}} */
|
||||
|
||||
function printDocumentChooser($formName) { /* {{{ */
|
||||
print "<input type=\"hidden\" id=\"docid".$formName."\" name=\"docid".$formName."\">";
|
||||
print "<input type=\"hidden\" id=\"docid".$formName."\" name=\"docid\">";
|
||||
print "<div class=\"input-append\">\n";
|
||||
print "<input type=\"text\" id=\"choosedocsearch\" data-provide=\"typeahead\" name=\"docname".$formName."\" placeholder=\"".getMLText('type_to_search')."\" autocomplete=\"off\" />";
|
||||
print "<a data-target=\"#docChooser".$formName."\" href=\"out.DocumentChooser.php?form=".$formName."&folderid=".$this->params['rootfolderid']."\" role=\"button\" class=\"btn\" data-toggle=\"modal\">".getMLText("document")."…</a>\n";
|
||||
|
@ -726,7 +726,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
|
|||
</div>
|
||||
<script language="JavaScript">
|
||||
modalDocChooser<?= $formName ?> = $('#docChooser<?= $formName ?>');
|
||||
function documentSelected(id, name) {
|
||||
function documentSelected<?= $formName ?>(id, name) {
|
||||
$('#docid<?= $formName ?>').val(id);
|
||||
$('#choosedocsearch').val(name);
|
||||
modalDocChooser<?= $formName ?>.modal('hide');
|
||||
|
@ -757,7 +757,7 @@ function documentSelected(id, name) {
|
|||
<script language="JavaScript">
|
||||
/* Set up a callback which is called when a folder in the tree is selected */
|
||||
modalFolderChooser<?= $formName ?> = $('#folderChooser<?= $formName ?>');
|
||||
function folderSelected(id, name) {
|
||||
function folderSelected<?= $formName ?>(id, name) {
|
||||
$('#targetid<?= $formName ?>').val(id);
|
||||
$('#choosefoldersearch<?= $formName ?>').val(name);
|
||||
modalFolderChooser<?= $formName ?>.modal('hide');
|
||||
|
@ -858,20 +858,8 @@ function folderSelected(id, name) {
|
|||
} /* }}} */
|
||||
|
||||
function printDropFolderChooser($formName, $dropfolderfile="") { /* {{{ */
|
||||
?>
|
||||
<script language="JavaScript">
|
||||
var openDlg;
|
||||
function chooseDropFolderFile<?php print $formName ?>() {
|
||||
var current = document.<?php echo $formName ?>.dropfolderfile<?php echo $formName ?>;
|
||||
openDlg = open("out.DropFolderChooser.php?form=<?php echo $formName?>&dropfolderfile="+current.value, "openDlg", "width=480,height=480,scrollbars=yes,resizable=yes,status=yes");
|
||||
}
|
||||
function clearFilename<?php print $formName ?>() {
|
||||
document.<?php echo $formName ?>.dropfolderfile<?php echo $formName ?>.value = '';
|
||||
}
|
||||
</script>
|
||||
<?php
|
||||
print "<div class=\"input-append\">\n";
|
||||
print "<input readonly type=\"text\" name=\"dropfolderfile".$formName."\" value=\"".$dropfolderfile."\">";
|
||||
print "<input readonly type=\"text\" id=\"dropfolderfile".$formName."\" name=\"dropfolderfile".$formName."\" value=\"".$dropfolderfile."\">";
|
||||
print "<button type=\"button\" class=\"btn\" onclick=\"javascript:clearFilename".$formName."();\"><i class=\"icon-remove\"></i></button>";
|
||||
print "<a data-target=\"#dropfolderChooser\" href=\"out.DropFolderChooser.php?form=form1&dropfolderfile=".$dropfolderfile."\" role=\"button\" class=\"btn\" data-toggle=\"modal\">".getMLText("choose_target_file")."…</a>\n";
|
||||
print "</div>\n";
|
||||
|
@ -886,9 +874,20 @@ function folderSelected(id, name) {
|
|||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-primary" data-dismiss="modal" aria-hidden="true"><?php printMLText("close") ?></button>
|
||||
<button class="btn" data-dismiss="modal" aria-hidden="true" onClick="acceptCategories();"><i class="icon-save"></i> <?php printMLText("save") ?></button>
|
||||
<!-- <button class="btn" data-dismiss="modal" aria-hidden="true" onClick="acceptCategories();"><i class="icon-save"></i> <?php printMLText("save") ?></button> -->
|
||||
</div>
|
||||
</div>
|
||||
<script language="JavaScript">
|
||||
/* Set up a callback which is called when a folder in the tree is selected */
|
||||
modalDropfolderChooser = $('#dropfolderChooser');
|
||||
function fileSelected(name) {
|
||||
$('#dropfolderfile<?= $formName ?>').val(name);
|
||||
modalDropfolderChooser.modal('hide');
|
||||
}
|
||||
function clearFilename<?php print $formName ?>() {
|
||||
$('#dropfolderfile<?= $formName ?>').val('');
|
||||
}
|
||||
</script>
|
||||
<?php
|
||||
} /* }}} */
|
||||
|
||||
|
@ -953,8 +952,8 @@ function folderSelected(id, name) {
|
|||
* @params boolean $showdocs set to true if tree shall contain documents
|
||||
* as well.
|
||||
*/
|
||||
function printNewTreeNavigation($folderid=0, $accessmode=M_READ, $showdocs=0) { /* {{{ */
|
||||
function jqtree($path, $folder, $user, $showdocs=1) {
|
||||
function printNewTreeNavigation($folderid=0, $accessmode=M_READ, $showdocs=0, $formid='form1') { /* {{{ */
|
||||
function jqtree($path, $folder, $user, $accessmode, $showdocs=1) {
|
||||
if($path) {
|
||||
$pathfolder = array_shift($path);
|
||||
$subfolders = $folder->getSubFolders();
|
||||
|
@ -971,12 +970,21 @@ function folderSelected(id, name) {
|
|||
$children[] = $node2;
|
||||
}
|
||||
}
|
||||
$node['children'] = jqtree($path, $subfolder, $user, $showdocs);
|
||||
$node['children'] = jqtree($path, $subfolder, $user, $accessmode, $showdocs);
|
||||
}
|
||||
$children[] = $node;
|
||||
}
|
||||
return $children;
|
||||
} else
|
||||
} else {
|
||||
$subfolders = $folder->getSubFolders();
|
||||
$subfolders = SeedDMS_Core_DMS::filterAccess($subfolders, $user, $accessmode);
|
||||
$children = array();
|
||||
foreach($subfolders as $subfolder) {
|
||||
$node = array('label'=>$subfolder->getName(), 'id'=>$subfolder->getID(), 'load_on_demand'=>$subfolder->hasSubFolders() ? true : false, 'is_folder'=>true);
|
||||
$children[] = $node;
|
||||
}
|
||||
return $children;
|
||||
}
|
||||
return array();
|
||||
}
|
||||
|
||||
|
@ -989,7 +997,7 @@ function folderSelected(id, name) {
|
|||
$node['load_on_demand'] = false;
|
||||
$node['children'] = array();
|
||||
} else {
|
||||
$node['children'] = jqtree($path, $folder, $this->params['user'], $showdocs);
|
||||
$node['children'] = jqtree($path, $folder, $this->params['user'], $accessmode, $showdocs);
|
||||
}
|
||||
$tree[] = $node;
|
||||
|
||||
|
@ -998,20 +1006,20 @@ function folderSelected(id, name) {
|
|||
$tree = array(array('label'=>$root->getName(), 'id'=>$root->getID(), 'load_on_demand'=>true, 'is_folder'=>true));
|
||||
}
|
||||
|
||||
echo "<div id=\"jqtree\" style=\"margin-left: 20px;\" data-url=\"../op/op.Ajax.php?command=subtree&showdocs=".$showdocs."\"></div>\n";
|
||||
echo "<div id=\"jqtree".$formid."\" style=\"margin-left: 10px;\" data-url=\"../op/op.Ajax.php?command=subtree&showdocs=".$showdocs."\"></div>\n";
|
||||
?>
|
||||
<script language="JavaScript">
|
||||
var data = <?php echo json_encode($tree); ?>;
|
||||
$(function() {
|
||||
$('#jqtree').tree({
|
||||
$('#jqtree<?= $formid ?>').tree({
|
||||
data: data,
|
||||
openedIcon: '<i class="icon-minus-sign"></i>',
|
||||
closedIcon: '<i class="icon-plus-sign"></i>',
|
||||
onCanSelectNode: function(node) {
|
||||
if(node.is_folder)
|
||||
folderSelected(node.id, node.name);
|
||||
folderSelected<?= $formid ?>(node.id, node.name);
|
||||
else
|
||||
documentSelected(node.id, node.name);
|
||||
documentSelected<?= $formid ?>(node.id, node.name);
|
||||
},
|
||||
autoOpen: true,
|
||||
drapAndDrop: true,
|
||||
|
@ -1039,7 +1047,7 @@ $(function() {
|
|||
}
|
||||
</script>
|
||||
<?php
|
||||
$this->printNewTreeNavigation($folderid, M_READ, 0);
|
||||
$this->printNewTreeNavigation($folderid, M_READ, 0, '');
|
||||
$this->contentContainerEnd();
|
||||
} else {
|
||||
$this->contentHeading("<a href=\"../out/out.ViewFolder.php?folderid=". $folderid."&showtree=1\"><i class=\"icon-plus-sign\"></i></a>", true);
|
||||
|
|
|
@ -39,7 +39,7 @@ class SeedDMS_View_DocumentChooser extends SeedDMS_Bootstrap_Style {
|
|||
|
||||
$this->htmlStartPage(getMLText("choose_target_document"));
|
||||
$this->contentContainerStart();
|
||||
$this->printNewTreeNavigation($folderid, M_READ, 1);
|
||||
$this->printNewTreeNavigation($folderid, M_READ, 1, $form);
|
||||
$this->contentContainerEnd();
|
||||
echo "</body>\n</html>\n";
|
||||
} /* }}} */
|
||||
|
|
|
@ -60,7 +60,7 @@ var targetName = document.<?php echo $form?>.dropfolderfile<?php print $form ?>;
|
|||
while (false !== ($entry = $d->read())) {
|
||||
if($entry != '..' && $entry != '.') {
|
||||
if(!is_dir($entry)) {
|
||||
echo "<tr><td><span style=\"cursor: pointer;\" onClick=\"targetName.value = '".$entry."'; window.close();\">".$entry."</span></td><td align=\"right\">".SeedDMS_Core_File::format_filesize(filesize($dir.'/'.$entry))."</td></tr>\n";
|
||||
echo "<tr><td><span style=\"cursor: pointer;\" onClick=\"fileSelected('".$entry."');\">".$entry."</span></td><td align=\"right\">".SeedDMS_Core_File::format_filesize(filesize($dir.'/'.$entry))."</td></tr>\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,8 +41,7 @@ class SeedDMS_View_FolderChooser extends SeedDMS_Bootstrap_Style {
|
|||
|
||||
$this->htmlStartPage(getMLText("choose_target_folder"));
|
||||
$this->contentContainerStart();
|
||||
$this->printNewTreeNavigation($folderid, $mode, 0);
|
||||
// $this->printFoldersTree($mode, $exclude, $rootfolderid);
|
||||
$this->printNewTreeNavigation($rootfolderid, $mode, 0, $form);
|
||||
$this->contentContainerEnd();
|
||||
echo "</body>\n</html>\n";
|
||||
} /* }}} */
|
||||
|
|
|
@ -166,7 +166,7 @@ class SeedDMS_View_ManageNotify extends SeedDMS_Bootstrap_Style {
|
|||
$this->contentSubHeading(getMLText("choose_target_document"));
|
||||
/* 'form1' must be passed to printDocumentChooser() because the typeahead
|
||||
* function is currently hardcoded on this value */
|
||||
$this->printDocumentChooser("form1");
|
||||
$this->printDocumentChooser("form2");
|
||||
print "<button type='submit' class='btn'><i class=\"icon-plus\"></i> ".getMLText("add")."</button>";
|
||||
print "</form>";
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ class SeedDMS_View_RemoveDocumentFile extends SeedDMS_Bootstrap_Style {
|
|||
$this->htmlStartPage(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))));
|
||||
$this->globalNavigation($folder);
|
||||
$this->contentStart();
|
||||
$this->pageNavigation(getFolderPathHTML($folder, true, $document), "view_document", $document);
|
||||
$this->pageNavigation($this->getFolderPathHTML($folder, true, $document), "view_document", $document);
|
||||
$this->contentHeading(getMLText("rm_file"));
|
||||
$this->contentContainerStart();
|
||||
|
||||
|
|
|
@ -325,6 +325,10 @@ if(!is_writeable($settings->_configFilePath)) {
|
|||
<td><?php printMLText("settings_quota");?>:</td>
|
||||
<td><input type="text" name="quota" value="<?php echo $settings->_quota; ?>" size="2" /></td>
|
||||
</tr>
|
||||
<tr title="<?php printMLText("settings_undelUserIds_desc");?>">
|
||||
<td><?php printMLText("settings_undelUserIds");?>:</td>
|
||||
<td><input type="text" name="undelUserIds" value="<?php echo $settings->_undelUserIds; ?>" size="32" /></td>
|
||||
</tr>
|
||||
<tr title="<?php printMLText("settings_encryptionKey_desc");?>">
|
||||
<td><?php printMLText("settings_encryptionKey");?>:</td>
|
||||
<td><input type="text" name="encryptionKey" value="<?php echo $settings->_encryptionKey; ?>" size="32" /></td>
|
||||
|
|
|
@ -41,6 +41,7 @@ class SeedDMS_View_UsrMgr extends SeedDMS_Bootstrap_Style {
|
|||
$passwordexpiration = $this->params['passwordexpiration'];
|
||||
$httproot = $this->params['httproot'];
|
||||
$enableuserimage = $this->params['enableuserimage'];
|
||||
$undeluserids = $this->params['undeluserids'];
|
||||
$workflowmode = $this->params['workflowmode'];
|
||||
|
||||
$this->htmlStartPage(getMLText("admin_tools"));
|
||||
|
@ -322,10 +323,16 @@ function showUser(selectObj) {
|
|||
<input type="hidden" name="userid" value="<?php print $currUser->getID();?>">
|
||||
<input type="hidden" name="action" value="edituser">
|
||||
<table class="table-condensed">
|
||||
<?php
|
||||
if(!in_array($currUser->getID(), $undeluserids)) {
|
||||
?>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td><a class="standardText btn" href="../out/out.RemoveUser.php?userid=<?php print $currUser->getID();?>"><i class="icon-remove"></i> <?php printMLText("rm_user");?></a></td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<tr>
|
||||
<td><?php printMLText("user_login");?>:</td>
|
||||
<td><input type="text" name="login" value="<?php print htmlspecialchars($currUser->getLogin());?>"></td>
|
||||
|
|
|
@ -189,9 +189,9 @@ class SeedDMS_View_ViewFolder extends SeedDMS_Bootstrap_Style {
|
|||
print "<thead>\n<tr>\n";
|
||||
print "<th></th>\n";
|
||||
print "<th><a href=\"../out/out.ViewFolder.php?folderid=". $folderid .($orderby=="n"?"":"&orderby=n")."\">".getMLText("name")."</a></th>\n";
|
||||
print "<th>".getMLText("owner")."</th>\n";
|
||||
// print "<th>".getMLText("owner")."</th>\n";
|
||||
print "<th>".getMLText("status")."</th>\n";
|
||||
print "<th>".getMLText("version")."</th>\n";
|
||||
// print "<th>".getMLText("version")."</th>\n";
|
||||
print "<th>".getMLText("action")."</th>\n";
|
||||
print "</tr>\n</thead>\n<tbody>\n";
|
||||
}
|
||||
|
@ -212,12 +212,13 @@ class SeedDMS_View_ViewFolder extends SeedDMS_Bootstrap_Style {
|
|||
// print "<td><img src=\"images/folder_closed.gif\" width=18 height=18 border=0></td>";
|
||||
print "<td><a rel=\"folder_".$subFolder->getID()."\" draggable=\"true\" ondragstart=\"onDragStartFolder(event);\" href=\"out.ViewFolder.php?folderid=".$subFolder->getID()."&showtree=".$showtree."\"><img draggable=\"false\" src=\"".$this->imgpath."folder.png\" width=\"24\" height=\"24\" border=0></a></td>\n";
|
||||
print "<td><a href=\"out.ViewFolder.php?folderid=".$subFolder->getID()."&showtree=".$showtree."\">" . htmlspecialchars($subFolder->getName()) . "</a>";
|
||||
print "<br /><span style=\"font-size: 85%; font-style: italic; color: #666;\">".getMLText('owner').": <b>".htmlspecialchars($owner->getFullName())."</b>, ".getMLText('creation_date').": <b>".date('Y-m-d', $subFolder->getDate())."</b></span>";
|
||||
if($comment) {
|
||||
print "<br /><span style=\"font-size: 85%;\">".htmlspecialchars($comment)."</span>";
|
||||
}
|
||||
print "</td>\n";
|
||||
print "<td>".htmlspecialchars($owner->getFullName())."</td>";
|
||||
print "<td colspan=\"1\"><small>";
|
||||
// print "<td>".htmlspecialchars($owner->getFullName())."</td>";
|
||||
print "<td colspan=\"1\" nowrap><small>";
|
||||
if($enableRecursiveCount) {
|
||||
if($user->isAdmin()) {
|
||||
/* No need to check for access rights in countChildren() for
|
||||
|
@ -237,7 +238,7 @@ class SeedDMS_View_ViewFolder extends SeedDMS_Bootstrap_Style {
|
|||
print count($subsub)." ".getMLText("folders")."<br />".count($subdoc)." ".getMLText("documents");
|
||||
}
|
||||
print "</small></td>";
|
||||
print "<td></td>";
|
||||
// print "<td></td>";
|
||||
print "<td>";
|
||||
print "<div class=\"list-action\">";
|
||||
if($subFolder->getAccessMode($user) >= M_ALL) {
|
||||
|
@ -306,12 +307,13 @@ class SeedDMS_View_ViewFolder extends SeedDMS_Bootstrap_Style {
|
|||
print "<td><img draggable=\"false\" class=\"mimeicon\" src=\"".$this->getMimeIcon($latestContent->getFileType())."\" title=\"".htmlspecialchars($latestContent->getMimeType())."\"></td>";
|
||||
|
||||
print "<td><a href=\"out.ViewDocument.php?documentid=".$docID."&showtree=".$showtree."\">" . htmlspecialchars($document->getName()) . "</a>";
|
||||
print "<br /><span style=\"font-size: 85%; font-style: italic; color: #666; \">".getMLText('owner').": <b>".htmlspecialchars($owner->getFullName())."</b>, ".getMLText('creation_date').": <b>".date('Y-m-d', $document->getDate())."</b>, ".getMLText('version')." <b>".$version."</b> - <b>".date('Y-m-d', $latestContent->getDate())."</b></span>";
|
||||
if($comment) {
|
||||
print "<br /><span style=\"font-size: 85%;\">".htmlspecialchars($comment)."</span>";
|
||||
}
|
||||
print "</td>\n";
|
||||
print "<td>".htmlspecialchars($owner->getFullName())."</td>";
|
||||
print "<td>";
|
||||
// print "<td>".htmlspecialchars($owner->getFullName())."</td>";
|
||||
print "<td nowrap>";
|
||||
$attentionstr = '';
|
||||
if ( $document->isLocked() ) {
|
||||
$attentionstr .= "<img src=\"".$this->getImgPath("lock.png")."\" title=\"". getMLText("locked_by").": ".htmlspecialchars($document->getLockingUser()->getFullName())."\"> ";
|
||||
|
@ -327,7 +329,7 @@ class SeedDMS_View_ViewFolder extends SeedDMS_Bootstrap_Style {
|
|||
if(count($links))
|
||||
print count($links)." ".getMLText("linked_documents")."<br />";
|
||||
print getOverallStatusText($status["status"])."</small></td>";
|
||||
print "<td>".$version."</td>";
|
||||
// print "<td>".$version."</td>";
|
||||
print "<td>";
|
||||
print "<div class=\"list-action\">";
|
||||
if($document->getAccessMode($user) >= M_ALL) {
|
||||
|
|
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.4 KiB |
BIN
views/bootstrap/images/powerpoint.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 1.5 KiB |