View | Details | Raw Unified | Return to bug 17297
Collapse All | Expand All

(-)a/koha-tmpl/intranet-tmpl/prog/css/staff-global.css (-44 / +52 lines)
Lines 75-86 h3 { Link Here
75
}
75
}
76
76
77
h4 {
77
h4 {
78
	font-size : 116%;	
78
	font-size : 116%;
79
	font-weight : bold;
79
	font-weight : bold;
80
}
80
}
81
81
82
h5 {
82
h5 {
83
	font-size : 100%;	
83
	font-size : 100%;
84
	font-weight : bold;
84
	font-weight : bold;
85
}
85
}
86
86
Lines 614-620 div.yui-b fieldset.brief fieldset legend { Link Here
614
    margin-left: 20px;
614
    margin-left: 20px;
615
}
615
}
616
616
617
fieldset.rows {  
617
fieldset.rows {
618
border-width : 1px;
618
border-width : 1px;
619
border:2px solid #b9d8d9;
619
border:2px solid #b9d8d9;
620
float : left;
620
float : left;
Lines 622-628 font-size : 90%; Link Here
622
clear : left;
622
clear : left;
623
margin: .9em 0 0 0;
623
margin: .9em 0 0 0;
624
padding: 0;
624
padding: 0;
625
width: 100%; 
625
width: 100%;
626
}
626
}
627
627
628
fieldset.rows.unselected {
628
fieldset.rows.unselected {
Lines 631-647 fieldset.rows.unselected { Link Here
631
    border: 0;
631
    border: 0;
632
}
632
}
633
633
634
fieldset.rows legend {  
634
fieldset.rows legend {
635
	margin-left: 1em;
635
	margin-left: 1em;
636
	font-weight: bold;
636
	font-weight: bold;
637
	font-size : 110%;
637
	font-size : 110%;
638
}
638
}
639
639
640
fieldset.rows label, fieldset.rows span.label {  
640
fieldset.rows label, fieldset.rows span.label {
641
	float: left;  
641
	float: left;
642
	font-weight : bold;
642
	font-weight : bold;
643
	width: 6em;  
643
	width: 6em;
644
	margin-right: 1em;  
644
	margin-right: 1em;
645
	text-align: right;
645
	text-align: right;
646
}
646
}
647
647
Lines 652-659 fieldset.rows fieldset { Link Here
652
	padding : .3em;
652
	padding : .3em;
653
}
653
}
654
654
655
.yui-b fieldset.rows label, .yui-b fieldset.rows span.label {  
655
.yui-b fieldset.rows label, .yui-b fieldset.rows span.label {
656
	width: 9em;  
656
	width: 9em;
657
}
657
}
658
658
659
.yui-b fieldset.rows td label, .yui-b fieldset.rows td span.label {
659
.yui-b fieldset.rows td label, .yui-b fieldset.rows td span.label {
Lines 664-671 fieldset.rows fieldset { Link Here
664
	margin-left : 10.5em;
664
	margin-left : 10.5em;
665
}
665
}
666
666
667
.yui-u fieldset.rows label, .yui-u fieldset.rows span.label {  
667
.yui-u fieldset.rows label, .yui-u fieldset.rows span.label {
668
	width: 10em;  
668
	width: 10em;
669
}
669
}
670
670
671
.yui-u fieldset.rows div.hint {
671
.yui-u fieldset.rows div.hint {
Lines 674-693 fieldset.rows fieldset { Link Here
674
674
675
fieldset.rows.left label, fieldset.rows.left span.label {
675
fieldset.rows.left label, fieldset.rows.left span.label {
676
	width : 8em;
676
	width : 8em;
677
	text-align : left;	
677
	text-align : left;
678
}
678
}
679
679
680
fieldset.rows ol {  
680
fieldset.rows ol {
681
padding: 1em 1em 0 1em;  
681
padding: 1em 1em 0 1em;
682
list-style-type: none;
682
list-style-type: none;
683
}
683
}
684
684
685
fieldset.rows li {  
685
fieldset.rows li {
686
float : left;
686
float : left;
687
clear : left;
687
clear : left;
688
padding-bottom: 1em;
688
padding-bottom: 1em;
689
list-style-type: none;
689
list-style-type: none;
690
width: 100%; 
690
width: 100%;
691
}
691
}
692
692
693
fieldset.rows.left li {
693
fieldset.rows.left li {
Lines 783-799 div.rows+div.rows { Link Here
783
div.rows {
783
div.rows {
784
float : left;
784
float : left;
785
clear : left;
785
clear : left;
786
margin: 0 0 0 0;  
786
margin: 0 0 0 0;
787
padding: 0;
787
padding: 0;
788
width: 100%; 
788
width: 100%;
789
}
789
}
790
790
791
791
792
div.rows span.label {  
792
div.rows span.label {
793
	float: left;  
793
	float: left;
794
	font-weight : bold;
794
	font-weight : bold;
795
	width: 9em;
795
	width: 9em;
796
	margin-right: 1em;  
796
	margin-right: 1em;
797
	text-align: left;
797
	text-align: left;
798
        padding-top: 0;
798
        padding-top: 0;
799
}
799
}
Lines 802-809 div.rows span.label { Link Here
802
    white-space: normal;
802
    white-space: normal;
803
}
803
}
804
804
805
div.rows ol {  
805
div.rows ol {
806
padding: .5em 1em 0 0;  
806
padding: .5em 1em 0 0;
807
list-style-type: none;
807
list-style-type: none;
808
}
808
}
809
809
Lines 818-824 clear : left; Link Here
818
padding-bottom: .2em;
818
padding-bottom: .2em;
819
padding-top: .1em;
819
padding-top: .1em;
820
list-style-type: none;
820
list-style-type: none;
821
width: 100%; 
821
width: 100%;
822
}
822
}
823
823
824
a.cancel {
824
a.cancel {
Lines 946-953 ol.bibliodetails span.label { Link Here
946
	border-right : 1px solid #E8E8E8;
946
	border-right : 1px solid #E8E8E8;
947
	float : left;
947
	float : left;
948
	font-weight: bold;
948
	font-weight: bold;
949
	width: 12em;  
949
	width: 12em;
950
	margin-right: 1em;  
950
	margin-right: 1em;
951
}
951
}
952
952
953
div.listgroup {
953
div.listgroup {
Lines 966-971 div.listgroup input { Link Here
966
	font-size: 80%;
966
	font-size: 80%;
967
}
967
}
968
968
969
div.listgroup ol li span.label i {
970
    margin-right : .5em;
971
}
972
973
div.listgroup ol li button,a {
974
    margin-left : .5em;
975
}
976
969
div.sysprefs h3 {
977
div.sysprefs h3 {
970
	margin : .2em 0 .2em .4em;
978
	margin : .2em 0 .2em .4em;
971
}
979
}
Lines 1035-1041 span.expired { Link Here
1035
}
1043
}
1036
1044
1037
div.help {
1045
div.help {
1038
	margin: .9em 0 0 0;  
1046
	margin: .9em 0 0 0;
1039
}
1047
}
1040
1048
1041
.blocker {
1049
.blocker {
Lines 1092-1103 div.first fieldset { Link Here
1092
.dialog table td {
1100
.dialog table td {
1093
	text-align : left;
1101
	text-align : left;
1094
}
1102
}
1095
  
1103
1096
.dialog  h2, .dialog h3, .dialog h4 {
1104
.dialog  h2, .dialog h3, .dialog h4 {
1097
  	margin : auto;
1105
  	margin : auto;
1098
	text-align : center;
1106
	text-align : center;
1099
  }
1107
  }
1100
  
1108
1101
.dialog input {
1109
.dialog input {
1102
 	background-color : #FFF;
1110
 	background-color : #FFF;
1103
 	border : 1px solid #bcbcbc;
1111
 	border : 1px solid #bcbcbc;
Lines 1252-1262 div.note i.fa-exclamation { Link Here
1252
 div.results {
1260
 div.results {
1253
 	padding : .7em 0;
1261
 	padding : .7em 0;
1254
 }
1262
 }
1255
 
1263
1256
 .accesskey {
1264
 .accesskey {
1257
 	text-decoration : underline;
1265
 	text-decoration : underline;
1258
 }
1266
 }
1259
 
1267
1260
label.required,
1268
label.required,
1261
span.required {
1269
span.required {
1262
    color : #C00;
1270
    color : #C00;
Lines 1388-1394 h1#logo a { Link Here
1388
}
1396
}
1389
1397
1390
#closewindow a {
1398
#closewindow a {
1391
	font-weight : bold;	
1399
	font-weight : bold;
1392
}
1400
}
1393
1401
1394
.patroninfo+#menu {
1402
.patroninfo+#menu {
Lines 1421-1430 li.email { Link Here
1421
}
1429
}
1422
1430
1423
.clearfix:after {
1431
.clearfix:after {
1424
    content: "."; 
1432
    content: ".";
1425
    display: block; 
1433
    display: block;
1426
    height: 0; 
1434
    height: 0;
1427
    clear: both; 
1435
    clear: both;
1428
    visibility: hidden;
1436
    visibility: hidden;
1429
}
1437
}
1430
1438
Lines 1664-1670 input.warning { Link Here
1664
}
1672
}
1665
1673
1666
#displayexample {
1674
#displayexample {
1667
	padding: 5px; 
1675
	padding: 5px;
1668
	margin-bottom: 10px;
1676
	margin-bottom: 10px;
1669
	background-color: #CCCCCC;
1677
	background-color: #CCCCCC;
1670
}
1678
}
Lines 1781-1787 span.permissiondesc { Link Here
1781
1789
1782
.results_summary {
1790
.results_summary {
1783
  display: block;
1791
  display: block;
1784
  font-size : 85%; 
1792
  font-size : 85%;
1785
  color: #707070;
1793
  color: #707070;
1786
  padding : 0 0 .5em 0;
1794
  padding : 0 0 .5em 0;
1787
}
1795
}
Lines 1886-1895 fieldset.rows+h3 {clear:both;padding-top:.5em;} Link Here
1886
}
1894
}
1887
1895
1888
.m880 {
1896
.m880 {
1889
    display:block; 
1897
    display:block;
1890
    text-align:right; 
1898
    text-align:right;
1891
    float:right; 
1899
    float:right;
1892
    width:50%; 
1900
    width:50%;
1893
    padding-left:20px
1901
    padding-left:20px
1894
}
1902
}
1895
1903
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tt (+2 lines)
Lines 15-20 Link Here
15
    browser.show();
15
    browser.show();
16
//]]>
16
//]]>
17
</script>
17
</script>
18
<script type="text/javascript" src="[% interface %]/[% theme %]/js/app/moredetail.js"></script>
18
</head>
19
</head>
19
<body id="catalog_moredetail" class="catalog">
20
<body id="catalog_moredetail" class="catalog">
20
[% USE KohaDates %]
21
[% USE KohaDates %]
Lines 199-204 Link Here
199
            [% END %]
200
            [% END %]
200
201
201
            </ol></div>
202
            </ol></div>
203
            <div id="item-messages-[% ITEM_DAT.itemnumber %]" class="item-messages"></div>
202
            <div class="listgroup"><h4>History</h4>
204
            <div class="listgroup"><h4>History</h4>
203
            <ol class="bibliodetails">
205
            <ol class="bibliodetails">
204
206
(-)a/koha-tmpl/intranet-tmpl/prog/js/public/moredetail.js (-1 / +124 lines)
Line 0 Link Here
0
- 
1
var React = require('react');
2
var ReactDOM = require('react-dom');
3
4
var ItemMessages = React.createClass({
5
    propTypes: {
6
        messages: React.PropTypes.array.isRequired
7
    },
8
    getInitialState: function() {
9
        return { messages: this.props.messages };
10
    },
11
    addMessage: function(message) {
12
        this.setState(function(state) {
13
            var newData = state.messages.slice();
14
            newData.push( message );
15
            return {messages: newData};
16
        });
17
    },
18
    removeMessage: function(index) {
19
        this.setState(function(state) {
20
            var newData = state.messages.slice();
21
            newData.splice(index, 1);
22
            return {messages: newData};
23
        });
24
    },
25
    render: function () {
26
        var item_messages = this;
27
        return  <div className="listgroup">
28
                    <h4>Messages</h4>
29
                    <ol className="bibliodetails">
30
                        {this.state.messages.map(function(message, index) {
31
                            return <ItemMessage key={message.id} message={message} index={index} onRemove={item_messages.removeMessage} />
32
                        })}
33
                        <ItemMessageCreator onAdd={item_messages.addMessage}/>
34
                    </ol>
35
                </div>;
36
    }
37
});
38
39
var ItemMessage = React.createClass({
40
    propTypes: {
41
        message: React.PropTypes.object.isRequired,
42
        index: React.PropTypes.number.isRequired,
43
        onRemove: React.PropTypes.func.isRequired,
44
    },
45
    removeMessage: function() {
46
        if ( confirm("Delete message the following message? : " + this.props.message.content ) ) {
47
            this.props.onRemove(this.props.index);
48
        }
49
    },
50
    render: function () {
51
        return  <li>
52
                    <span className="label">
53
                        <i className="fa fa-minus-circle" onClick={this.removeMessage}></i>
54
                        {this.props.message.type}
55
                    </span>
56
                    {this.props.message.content}
57
                </li>
58
      }
59
});
60
61
var ItemMessageCreator = React.createClass({
62
    propTypes: {
63
        onAdd: React.PropTypes.func.isRequired,
64
    },
65
    getInitialState: function () {
66
        return {
67
            content: "",
68
            type: "",
69
        };
70
    },
71
    addMessage: function() {
72
        this.props.onAdd(
73
            {
74
                id: Math.random() * 100,
75
                type: this.state.type,
76
                content: this.state.content,
77
            }
78
        );
79
    },
80
    cancelMessage: function() {
81
        this.setState( this.getInitialState );
82
        return false;
83
    },
84
    handleTypeChange: function(e) {
85
        this.setState({ type: e.target.value });
86
    },
87
    handleContentChange: function(e) {
88
        this.setState({ content: e.target.value });
89
    },
90
    render: function () {
91
        return  <li>
92
                    <span className="label">
93
                        <select value={this.state.type} onChange={this.handleTypeChange}>
94
                            <option value="test1">Test 1</option>
95
                            <option value="test2">Test 2</option>
96
                            <option value="test3">Test 3</option>
97
                        </select>
98
                    </span>
99
                    <input className="input-xlarge" type="text" value={this.state.content} onChange={this.handleContentChange} />
100
                    <button className="submit" onClick={this.addMessage}>
101
                        <i className="fa fa-plus-circle"></i>
102
                        Add message
103
                    </button>
104
                    <a href="javascript:void(0);" onClick={this.cancelMessage}>Cancel</a>
105
                </li>
106
      }
107
});
108
109
$( document ).ready(function() {
110
    var messages = [
111
        { id: 1, type: "Test 1", content: "Message 1" },
112
        { id: 2, type: "Test 2", content: "Message 2" },
113
        { id: 3, type: "Test 3", content: "Message 3" },
114
        { id: 4, type: "Test 4", content: "Message 4" },
115
        { id: 5, type: "Test 5", content: "Message 5" },
116
    ];
117
118
    $('.item-messages').each(function() {
119
        ReactDOM.render(
120
            <ItemMessages messages={messages}/>,
121
            this
122
        );
123
    });
124
});

Return to bug 17297